簡體   English   中英

mongoDB 與 nodejs 返回數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM