搜尋

首頁  >  問答  >  主體

怎麼將mongodb的資料呼叫傳回

const connect = async () => {
    // 连接 mongodb 数据库
    const db = await monguaDb()
    const collection = db.collection('user')
    let b = await collection.find({}).toArray()
    cc = b
    console.log("111---" , cc)
    return b
}


const  a = connect()
console.log("2222--------", cc)

如題我想封裝mongo到Model....但發現一個問題,裡面印沒問題,但是外面呼叫的時候,資料會遺失。 。 。 。 222-------印製的是空

哦,如果放到項目封裝好,印出來的是Promise { <pending> }

怎麼處理才能回傳數組,還是需要用mongose這些框架了?

迷茫迷茫2711 天前1228

全部回覆(2)我來回復

  • 怪我咯

    怪我咯2017-06-26 10:51:30

    我使用的是mongoose,蠻好用的,這裡有我寫的幾個demo https://github.com/treeandgra...

    https://github.com/treeandgra...

    回覆
    0
  • 漂亮男人

    漂亮男人2017-06-26 10:51:30

    首先我要聲明的是這個問題與框架或函式庫無關,完全是 promise 的問題。
    1、並不是資料遺失,而是你的 cc 變數瞎定義而且根本沒必要。
    2、看的出來樓主對 promise 了解不夠,await 返回的本來就是 promise 對象,鍊式調用一下就可以取到數據了。

    const connect = async () => {
        const db = await monguaDb()
        const collection = db.collection('user')
        let b = await collection.find({}).toArray()
        console.log("111---" , b);
        return b; //返回的b是promise对象
    }
    
    connect().then((doc) => { //取出b完成后resolve的数据
        console.log(222---" , doc);
    });
    

    回覆
    0
  • 取消回覆