[英]mongoDB with nodejs return data
我有自己的类和方法调用 findByIdDate() 当我在 db.collection() 中找到数据时,我会得到结果,但如果我想从我自己的方法中返回该数据,它将返回未定义。 有人可以为我提供如何获取数据的示例吗? 我一直在搜索,但我找不到这个问题的任何答案。 我是节点的新手并表达了我的方法
findByIdDate(){
let data = this.db.collection('journal').find({date: this.Date}).toArray((err, result) => {
if(err){return console.log(err)}
console.log(result) // I have data
return result
})
return data
}
在我的另一个文件中,我像这样使用它
app.post('/id', (req, res) => {
const DIARY = new diary('new', '16 January 2020', db)
let result = DIARY.findByIdDate()
console.log(result) // undefined
});
最好取消回调函数并使函数async/await
为:
async findByIdDate(){
try {
let data = await this.db.collection('journal')
.find({date: this.Date})
.toArray() // returns a promise which can be 'awaited'
console.log(data)
return data
} catch (err) {
console.error(err)
throw err
}
}
并在您的路线中使用它作为
app.post('/id', async (req, res) => {
try {
const DIARY = new diary('new', '16 January 2020', db)
let result = await DIARY.findByIdDate()
console.log(result)
} catch(err) {
console.error(err)
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.