向Express Server提出多个AngularJS发布请求?服务器在第二个帖子请求上崩溃



因此,鉴于我无法同时在客户端中同时运行这两个帖子请求,因此我试图在第一篇文章的.then部分中运行第二个帖子。这总是在我的其他项目上运作良好。但是由于某种原因,当第二次帖子请求发射我的服务器时,我没有回复。当我检查服务器的控制台时,我注意到它崩溃了,并且有一个错误消息(在这篇文章的底部)。

是什么可能导致这个?

我已经在服务器代码中的第二个帖子请求上放了断点,并且注意到断点甚至不会受到打击。服务器撞击之前崩溃并给我继续继续。

客户端代码(用户按下按钮时会发射):

$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(本机)

在createstrictsyntaxerror (c: users rdubz documents 访谈 eagledream 12-7-17 project node_modules body-parser lib types json.js:157:10)

在Parse(C: Users rdubz Documents Documents 访谈 EagleDream) 12-7-17 project node_modules body-parser lib types json.js:83:15)

at C: users rdubz documents 访谈 eagledream 12-7-17 project node_modules body-parser lib read.js:121:18

在InvokeCallback(C: Users rdubz Documents Documents 访谈 eagledream 12-7-17 project node_modules body-parser node_modules raw-body index.js:224:16)

完成(c: users rdubz documents 访谈 eagledream 12-7-17 project node_modules body-parser node_modules raw-body index.js:213:7)

in incomingmessage.onend (c: users rdubz documents 访谈 eagledream 12-7-17 project node_modules body-parser node_modules raw-body index.js:273:7)

在emitnone(event.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 i使用var id = 0并将其传递给我的函数,而无需意识到它需要传递为对象或参数。感谢那些发表评论的人!

最新更新