你好吗? 我对猫鼬和mongoDB相当陌生,而且在做基本查询时遇到了麻烦。所以,我有这样的代码:猫鼬:正确得到查询结果
function addVoterToElection(req, res) {
let query = Election.findOne({ 'name' : req.body.electionName });
let result = query.exec((err, election) => {
if(err) return err;
return res.send(election);
});
}
的作品如预期,因为T发送选我需要返回给请求者:
{
"_id": "594408b7c94fcdc009000001",
"votechain": "594408b7c94fcdc009000002",
"name": "eleicaoteste",
"electionID": 12,
"__v": 0,
"voters": null
}
但问题是,我需要使用对象其他目的,而且我在从query.exec中“提取”它时遇到了麻烦。如果我做
let query = Election.findOne({ 'name' : req.body.electionName });
let result = query.exec((err, election) => {
if(err) return err;
return (election);
});
res.json(result);
所有我得到的回复是
{
"emitted": {},
"ended": false,
"_events": {},
"_eventsCount": 2
}
,因此我不能用它来依赖于具有本次选举对象的工作下一个查询。我能做什么?我知道这是一个相当基本的问题,但我不确定我是否理解整个承诺是如何工作的。 非常感谢!
虽然接受的答案是正确的,我发现使用“异步”模块,您可以达到所需的结果,如此答案中所述: https://stackoverflow.com/a/5165153/4148031 –