MongoDB查找返回在Node.Js代码中未定义的结果

纳特尔·梅科宁

Expressundefined在控制台日志中返回我想获取如下所示的数据。

app.get('/api/leaders/', async (req, res) => {
    try {
        const client = await MongoClient.connect('mongodb://localhost:27017', {useNewUrlParser: true, useUnifiedTopology: true});
        const db = client.db('leaders');

        const leadersList = await db.collection('leaders').find({}).toArray(function (err, result) {
            console.log("Connected correctly to server");
            console.log(result);
        });

        res.status(200).json(leadersList);

        client.close();

    } catch (error) {
        res.status(500).json({message: 'Error connecting to db', error});
    }
})

这是我想从数据库返回的数据:

db.leaders.find({})
{ "_id" : ObjectId("5eb8922d17d98c2bb6f98a5a"), "username" : "kk", "score" : 20 }
{ "_id" : ObjectId("5eb8922d17d98c2bb6f98a5b"), "username" : "mj", "score" : 18 }
{ "_id" : ObjectId("5eb8922d17d98c2bb6f98a5c"), "username" : "vr", "score" : 15 }
{ "_id" : ObjectId("5eb8922d17d98c2bb6f98a5d"), "username" : "mdb", "score" : "25" }
谁-假面真灵魂

您正在尝试将.Jscallbacks混合使用async-await这会引起问题。试试下面的代码:

app.get('/api/leaders/', async (req, res) => {
    let client;
    try {
        client = await MongoClient.connect('mongodb://localhost:27017', {useNewUrlParser: true, useUnifiedTopology: true});
        const db = client.db('leaders');
        console.log("Connected correctly to server");

        const leadersList = await db.collection('leaders').find({}).toArray();

        console.log('leadersList ::',leadersList);
        /** I would not recommend to open & close DB connections for each API call. Find a better way to manage DB connections */
        client.close(); 
        res.status(200).json(leadersList);

    } catch (error) {
        if(client){ console.log('Error at DB find operation'); client.close(); res.status(500).json({message: 'Error at DB find operation', error}); }
        res.status(500).json({message: 'Error connecting to db', error});
    }
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mongodb find()返回未定义的(node.js)

来自分类Dev

MongoDB返回“未定义”的node.js

来自分类Dev

Node.js从MongoDB获取请求返回未定义

来自分类Dev

node.js中返回的unirest响应未定义

来自分类Dev

模块函数在Node.js中返回未定义

来自分类Dev

node.js中返回的unirest响应未定义

来自分类Dev

返回结果Node.js时结果始终未定义

来自分类Dev

代码返回“未定义”

来自分类Dev

Node.JS - Select Max() 结果未定义

来自分类Dev

模型中单独的代码时,Node.js未定义变量

来自分类Dev

Mongoose / MongoDB结果字段在Javascript中未定义

来自分类Dev

获取未定义的node.js代码

来自分类Dev

结果在最终结果中返回未定义,但在axios请求中返回结果

来自分类Dev

返回未定义的 JS

来自分类Dev

从API提取结果返回未定义

来自分类Dev

数组返回“未定义”结果

来自分类Dev

getDownloadURL() 返回变量的未定义结果

来自分类Dev

.env变量在React JS应用中返回未定义

来自分类Dev

JS中的_forEach实现返回未定义

来自分类Dev

在 Express JS 中访问用户信息返回未定义

来自分类Dev

MongoDB返回未定义

来自分类Dev

Node.js中的错误“未定义窗口”

来自分类Dev

Node.js中的“ ReferenceError:处理程序未定义”

来自分类Dev

解析在Node JS Controller中未定义

来自分类Dev

Javascript函数在Node.js中返回未定义的值

来自分类Dev

当我在node.js中调用ajax作为未定义的返回值时

来自分类Dev

节点js从mongodb obejct内部值返回未定义

来自分类Dev

Node.js Q承诺forEach返回未定义

来自分类Dev

Node.js NPM MSSQL函数返回未定义