Javascript 将数据返回到index.js node express

Javascript 将数据返回到index.js node express,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,为什么用户没有定义 db.js: var MongoClient=require('mongodb')。MongoClient var用户; MongoClient.connect('mongodb://127.0.0.1:27017/ExpressApp2,函数(err,db){ users=db.collection('usercollection'); users.find().each(函数(err,doc){ 控制台日志(doc); }); });在db.js中,您没有使用modul

为什么用户没有定义

db.js:

var MongoClient=require('mongodb')。MongoClient
var用户;
MongoClient.connect('mongodb://127.0.0.1:27017/ExpressApp2,函数(err,db){
users=db.collection('usercollection');
users.find().each(函数(err,doc){
控制台日志(doc);
});

});在db.js中,您没有使用module.exports导出用户

index.js中的代码建议db.js使用getUsers函数导出一个对象,但事实并非如此

MongoClient.connect('mongodb://127.0.0.1:27017/ExpressApp2', function(err, db)       {
    users = db.collection('usercollection');
    users.find().each(function(err, doc) {
        console.log(doc);
    });
});
应该是

module.exports.getUsers = function() {
    MongoClient.connect('mongodb://127.0.0.1:27017/ExpressApp2', function(err, db)       {
        return db.collection('usercollection');
    });
}
我是这么想的

users.find().each(function(err, doc) {
    console.log(doc);
});

是调试的一部分,实际要返回的是用户集合。重要的一点是将块添加到module.exports as getUsers()。

我最终让它与这个异步调用一起工作。 index.js


}))

我同意,这正是我想要的,但我也尝试过类似的方法,但仍然没有定义返回到浏览器。db.collection包含数据。这可能是我从index.js调用函数的方式吗?
router.get('/userlist', function(req, res) {
var d = require('../db');
d.getUsers('input', function(users) {
    users.each(function(err, doc) {
        res.send(doc);
        return false;
    });

});