怎么将mongodb的数据调用返回
迷茫
迷茫 2017-06-26 10:49:30
[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这些框架了?

迷茫
迷茫

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

全部回复(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);
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号