【发布时间】:2016-10-26 17:08:23
【问题描述】:
我尝试按名称查找一项,然后更新表并返回更新后的结果,但返回不起作用。我的代码:
class addSongsToArtist {
constructor(artistName) {
Artist.findOne({
name: artistName
}).exec((err, data) => {
if (err) console.log(err);
data.name = 'updated name'
data.save();
return data // * not work
});
}
}
进入 exec 方法,我看到了正确结果的数据,并保存了 mongo 控制台结果。但返回不起作用。我尝试将更改保存到外部变量并在 Promise 中返回结果,但它也不起作用。 为什么它不起作用?
【问题讨论】:
-
not work是什么意思?它是一种异步方法,那么您如何尝试接收data的值来使用它?你能分享那段代码吗? -
data.save是 i/o,所以需要时间。在 Mongoose 玩它之前,您什么都不会归还。试试data.save(function(err){return data}) -
你需要了解 js 中的异步行为。看看stackoverflow.com/questions/14220321/…
标签: javascript node.js mongoose