我的 Nodejs API 应用程序中有此路线:
router.post('/user', function(req, res, next){
if(!req.body.username){
return res.status(400).json({message: 'Geen username'});
}
var user = {};
User.find({ 'username': req.body.username}, function(err, foundUser){
if(err)
return next(err);
if (foundUser) // check the value returned for undefined
{
user = foundUser;
}
});
res.json(user);
});
但是这只会返回 {} 并且我确信用户名在数据库中。
这就是我在 Angular 应用程序中调用路线的方式:
$scope.user = function() {
$http({
method: 'POST',
url: "http://groep6api.herokuapp.com/user",
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
//'authentication': 'bearer' + $window.localStorage.getItem('token')
},
data: {username: $window.localStorage.getItem('username')},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
}
}).success(function (result) {
console.log(result);
}).error(function(){
});
};
我对 Angular 和 Nodejs 相当陌生,我尝试过 User.find 和 User.findOne,但都不起作用。如何根据参数在 mongoose 中搜索对象?
最佳答案
您将在 mongoose 调用完成之前返回 json,因此 user 变量为空。试试这个:
router.post('/user', function(req, res, next){
if(!req.body.username){
return res.status(400).json({message: 'Geen username'});
}
var user = {};
User.find({ 'username': req.body.username}, function(err, foundUser){
if(err)
return next(err);
if (foundUser) // check the value returned for undefined
{
user = foundUser;
}
res.json(user);
});
});
关于angularjs - 如何使用用户名查询 Mongoose ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33290330/