怎麼將mongodb的資料呼叫傳回
迷茫
迷茫 2017-06-26 10:49:30
0
2
1225
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這些框架了?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
刘奇

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

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

漂亮男人

首先我要聲明的是這個問題與框架或函式庫無關,完全是 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);
});
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板