javascript - node.js如何调用mongodb集合getall?

标签 javascript node.js mongodb express

我想从 mongo db 获取整个通知列表,但它返回空 ([]) 数组,我也知道我需要回调或更短的方式。您是否知道通过 node.js 从 mongodb 收集任何数据?如果我调用这个/Notifies 方法 ( http://127.0.0.1:5000/Notifies )

var MongoClient = require('mongodb').MongoClient;
var express = require("express");
var app = express();


format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/Test', function (err, db) {
    if (err) {
        throw err;
    } else {
        console.log("successfully connected to the database");
    }
    db.close();
});

app.get('/Notifies', function (req, res) {

    // BAD! Creates a new connection pool for every request
    console.log('connected');
    MongoClient.connect('mongodb://127.0.0.1:27017/Test', function (err, db) {
        if (err) throw err;

        var coll = db.collection('Notifies');
        var arr = [];
        coll.find({}, function (err, docs) {
            docs.each(function (err, doc) {
                if (doc) {
                    console.log(doc);
                    arr.push(doc);

                } else {
                    res.end();
                }
            });
        });
        return res.json(arr);
    });
});

var port = Number(process.env.PORT || 5000);
app.listen(port, function () {
    console.log("Listening on " + port);
})

最佳答案

不要使用 for docs.each 而不是使用 .toArray 这样它会直接返回一个数组然后使用 Json.stringify 将其转换为 json 字符串数组

MongoClient.connect('mongodb://127.0.0.1:27017/Test', function (err, db) {
    if (err) throw err;

    var coll = db.collection('Notifies');

    coll.find({}).toArray(function (err, result) {
        if (err) {
            res.send(err);
        } else {

            res.send(JSON.stringify(result));
        }
    })

});

关于javascript - node.js如何调用mongodb集合getall?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41252124/

相关文章:

javascript - 仅向来自 Facebook 的用户显示 DIV

ajax - backbone.js 的跨域 CORS 支持

node.js - 在 NodeJs 中按照 RFC 1738 编码字符串

c# 如何将 Array 对象属性映射到 Mongodb BsonType.Array

javascript - R Shiny 的数据输入自动关闭选项

javascript - 如何保护来自多个域的 ajax 请求?

javascript - 当我想使用 Ember.js 时应该选择哪个版本?

mongodb - 从 Mongo 获取 BinData UUID 作为字符串

MongoDB/Mongoose 对单个文档的原子读写

javascript - 我们如何在多个选项卡(页面)中使用相同的状态?