在我的nodejs api应用程序中,我有以下路径:
router.post('/startuserseries', function(req, res, next){
if(!req.body.username){
return res.status(400).json({message: 'Geen username'});
}
User.findOne({ 'username': req.body.username}, function(err, foundUser){
if(err)
return next(err);
if (foundUser) // check the value returned for undefined
{
foundUser.isdoingchallenges = true;
foundUser.save(function (err) {
if(err) {
console.error('ERROR!');
}
});
}
});
});
当我用邮递员呼叫这条路线时,请求永远不会结束。
我尝试过使用put,但也没有成功,我尝试过各种代码结构,但都没有成功。
最佳答案
此请求将不会完成,因为它没有在服务器上写入响应命令。
您应该像下面这样轻松地解决这个问题:
router.post('/startuserseries', function(req, res, next){
if(!req.body.username){
return res.status(400).json({message: 'Geen username'});
}
User.findOne({ 'username': req.body.username}, function(err, foundUser){
if(err)
return next(err);
if (foundUser) // check the value returned for undefined
{
foundUser.isdoingchallenges = true;
foundUser.save(function (err) {
if(err) {
res.json(err);
}
});
}
res.send(200);
// or your specific result json object
// res.json({"error":false,"message":"completed"})
});
});
关于node.js - 在mongoose中更新对象会导致循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33395936/