将多个AngularJS Post请求发送到Express服务器? 服务器崩溃的第二个post请求

所以鉴于我不能同时在我的客户端运行这两个post请求,我试图在第一篇文章的.then部分运行第二篇文章。 这对我的其他项目一直工作得很好。 但由于某种原因,当第二个职位请求触发我的服务器不答复。 当我检查服务器的控制台时,我发现它崩溃,并有一个错误消息(在这篇文章的底部)。

什么可能导致这个?

我已经在我的服务器代码中的第二个发布请求中放置了断点,并且注意到断点甚至没有被触发。 服务器在命中之前崩溃,并让我select继续。

客户端代码(当用户按下button时被触发):

 $scope.searchCharacter = function(){ var request = {name: $scope.charName, realm: $scope.selectedRealm}; //First post request $http.post('/searchCharacter', request) .then(function(response) { //sets some variables var id = 0; //Second post request $http.post('/helloworld', id) .then(function(response) { //sets some more variables debugger; }); }); } 

服务器代码:

 //First post request app.post('/searchCharacter', jsonParser, function (req, res) { blizzard.wow.character(['profile', 'stats', 'items', 'statistics'], { origin: 'us', realm: req.body.realm.name, name: req.body.name }) .then(response => { if(response.status != 200){ res.send("That character doesn't exist! Please enter a valid character name."); } else { console.log(response.data); res.send(response.data); } }); }); //Second Post Request app.post('/helloworld', jsonParser, function (req, res) { console.log(req.body); res.send("hello"); }); 

错误信息:

SyntaxError:意外的标记#

在Object.parse(native)

在createStrictSyntaxError(c:\ Users \ RDubz \ Documents \ Interviews \ EagleDream 12-7-17 \ Project \ node_modules \ body-parser \ lib \ types \ json.js:157:10)

(c:\ Users \ RDubz \ Documents \ Interviews \ EagleDream 12-7-17 \ Project \ node_modules \ body-parser \ lib \ types \ json.js:83:15)

在c:\ Users \ RDubz \ Documents \ Interviews \ EagleDream 12-7-17 \ Project \ node_modules \ body-parser \ lib \ read.js:121:18

在invokeCallback(c:\ Users \ RDubz \ Documents \ Interviews \ EagleDream 12-7-17 \ Project \ node_modules \ body-parser \ node_modules \ raw-body \ index.js:224:16)

(c:\ Users \ RDubz \ Documents \ Interviews \ EagleDream 12-7-17 \ Project \ node_modules \ body-parser \ node_modules \ raw-body \ index.js:213:7)

IncomingMessage.onEnd(c:\ Users \ RDubz \ Documents \ Interviews \ EagleDream 12-7-17 \ Project \ node_modules \ body-parser \ node_modules \ raw-body \ index.js:273:7)

在emitNone(events.js:67:13)

在IncomingMessage.emit(events.js:166:7)

在endReadableNT(_stream_readable.js:921:12)

尝试这个:

 $scope.searchCharacter = function(){ var request = {name: $scope.charName, realm: $scope.selectedRealm}; //First post request $http.post('/searchCharacter', request) .then(function(response) { //sets some variables var id = 0; //Second post request (append id to route). $http.post('/helloworld/' + id) .then(function(response) { //sets some more variables debugger; }); }); } //First post request app.post('/searchCharacter', jsonParser, function (req, res) { blizzard.wow.character(['profile', 'stats', 'items', 'statistics'], { origin: 'us', realm: req.body.realm.name, name: req.body.name }) .then(response => { if(response.status != 200){ res.send("That character doesn't exist! Please enter a valid character name."); } else { console.log(response.data); res.send(response.data); } }); }); //Second Post Request (get id from req.params.id) app.post('/helloworld/:id', function (req, res) { console.log(req.params.id); res.send("hello"); }); 

它将id附加到helloworld请求,并使用req.params.id定义一个路由helloworld/:id将id从请求中拉出。

Facepalm我正在使用var id = 0并将其传递给我的函数,而不意识到它需要作为对象或parameter passing。 感谢那些评论!