对NodeJS服务器的超级慢速发布请求

我正在尝试使用PostMan和terminal对我的NodeJs服务器执行Post请求,但似乎请求永远不会结束。

我有一个网站和一个表单,我尝试使用Ajax发送表单。 我在其他文件中做同样的事情,除了其他文件不包含表单和发布的作品。

这是我的HTML格式:

<div class="team"> <img class="teamInfo" src="images/leaderboard.png"> <p class= "createT"> Create a Team </p> <p class= "chooseC"> Choose a Charity </p> <p class= "enter"> Enter Team Member's Email</p> <p class= "upload">Upload your Company<br>or Team's Logo</p> <!-- added action tag solved the 405 error : "post method not allowed"--> <form id="create_team_form" action="/" method="post"> <input class="teamName" type="text" id="teamName" name="teamName" size="25" maxlength="60" value="Team Name"> <input class="companyName" type="text" id="companyName" name="companyName" size="25" maxlength= "60" value="Company Name"> <input class="teamDescription" type="text" id="teamDescription" name="teamDescription" size="25" maxlength= "60" value="Team Description"> <input class= "email" type="text" id="email" name="email" size="25" maxlength= "60" value="emails"> <input class="searchCharity" type="text" id="charityName" name="charityID" size ="25" maxlength="60"> <p class="click"> Click the charity's name to select who your team will run for!</p> <input class="greenButton" type="button" onclick="createTeam();" value="Create My Team!"> </form> <img class="img-box" src="images/imgBox.png" alt=""/> </div> 

这是我的JavaScript的Ajax发送到服务器的forms:

 function createTeam(){ var teamN= document.getElementById("teamName").value; var companyName =document.getElementById("companyName").value; //maybe not, tae it off. var charityName = document.getElementById("charityName").value; if((teamN.trim() === "") || (companyName.trim() === "") || (charityName.trim() === "")) { alert("You did not fill the team Name or companyName, Please enter with a name"); }else{ var sessionID = $.cookie("sessionID") $.ajax({ type: "POST", url: "http://xxx.xxxx.xxx.x:9000/team/?sessionID="+sessionID, data: $("#create_team_form").serialize(), success: function(msg) { alert("team supposedly saved") $.cookie("teamID",msg.teamID) $.cookie("sessionID",sessionID) //window.location.href='teamCreated.html' } }); } } 

它进去了,但其他的只是缓慢的。 我不知道数据是否正在发送。 我无法在我的mongodb中保存文档。

这是我在服务器上的team.js:

  var express = require('express'); var sha1 = require('sha1'); var router = express.Router(); var sessionOBJ = require('./session'); var mongoose = require('mongoose'); var Schema = mongoose.Schema; router.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods", "PUT, GET,POST"); }); var teamSchema = new Schema({ teamID: String, teamName: String, teamDescription: String, teamAdminID: String, teamLink: String, charityID: String }); var teamModel = mongoose.model('teams',teamSchema); router.post('/', function (req, res){ log.d("Entrou no method post"); var sessionID = req.query.sessionID var team = req.body; var teamName = team.teamName; var teamDescription = team.teamDescription; var charityID = team.charityID; var teamLink = team.teamLink; sessionOBJ.isAuthorized(sessionID, function(sessionID){ log.d("Checking session to save team", sessionID); var adminID = sessionID.userID; var newTeam = new teamModel({ teamName: teamName, teamDescription: teamDescription, teamAdminID: adminID, teamLink: teamLink, charityID: charityID }); newTeam.save(function(err, team){ if(err) return console.error(err); res.send({"status" : "Created", "teamID" : team._id, "teamAdminID":team.teamAdminID }); log.d("Created Team ID", team._id) log.d("XXXXXXX XXXXXX XXXXXXX Team Saved inside save method",team); }); }); }) } 

有人可以看到我做错了吗?

提前致谢。

res.send()调用res.end()response.end告诉服务器整个消息已经发送,可以closures连接,否则会等待更多的数据。

来源: https : //nodejs.org/api/http.html#http_response_end_data_encoding_callback