gpt4 book ai didi

javascript - mongodb find() 在node.js中返回空结果

转载 作者:行者123 更新时间:2023-12-03 12:12:23 27 4
gpt4 key购买 nike

在我的 Node 应用程序中,我通过 Mongoose 使用 mongodb 进行数据存储。以下是我的代码:

 var client = new OAuthClient({"name":"default"});
client.user = req.user;
client.username = req.body.username;
console.log("b4 save");
client.save();

OAuthClient.find({username:req.body.username}).exec(function(err, clients) {
if (err) {
res.render('error', {
status: 500
});
} else {
console.log("clientssssssss=" + util.inspect(clients));
res.jsonp(clients);
}
});

但是

console.log("clientssssssss="+ util.inspect(clients));返回空数组[]。

当我在 ROBOMONGO 中执行命令时,会返回结果。假设我的查询是这样的 OAuthClient.find({username:'user4'})结果即将到来,但上面的代码返回空数组。帮我解决这个问题。提前致谢..

最佳答案

您的问题是回调,如下所示:

client.save();   // <-- not waiting for callback

OAuthClient.find({username:req.body.username}).exec(function(err, clients) {
if (err) {

您需要等待回调,因为 .save() 不保证完成。改为: client.save(函数(错误,客户端){

    OAuthClient.find({username:req.body.username}).exec(function(err, clients) {                
if (err) {

}

//body of work
});

});

所有内容都在 .save() 的回调中

关于javascript - mongodb find() 在node.js中返回空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24904529/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com