我接受来自前端的用户名和电话,现在我需要发送电话到mongodb,并且根据该电话,我需要获取匹配学生详细信息的详细信息。请帮助我实现此目的。
这是我的服务器代码:
server.post('/phone',urlencodedParser,function(req,res){
var resp={
Username : req.body.username,
phn:req.body.password
}
databaseInterface.studentDetail(resp.phn);
res.json(resp.phn);
console.log(resp);
res.send('username :' + req.body.username + 'passwrd:' + req.body.password);
})
这是我的mongoDB代码:
function studentDetail(phn){
User.findOne({'Father.PhoneNo':phn},function(err,studentcollection2){
if (err) return phn(err);
return phn(null, studentcollection2);
}).select('-__v');
}
答案 0 :(得分:1)
您正在使用的回调存在一些问题。
function studentDetail(phn,callback){
User.findOne({'Father.PhoneNo':phn},function(err,studentcollection2){
if (err) return callback(err);
return callback(null, studentcollection2);
}).select('-__v');
}
您的回复,
databaseInterface.studentDetail(resp.phn, function(err, val){
if(err) res.send('ERROR!');
else res.send('Response');
});
未经测试!
答案 1 :(得分:0)
FindOne将返回一个承诺。在返回你的json之前,你需要等待它完成。
要实现这一目标,您需要执行以下操作:
databaseInterface.studentDetail(resp.phn).then((data,error) => {
res.json({response:data});
});
你的查询似乎也错了。
function studentDetail(phone) {
return [yourQuery].exec()
}
我相信它是