![](/img/trans.png)
[英]How to get this data sent to from index.js to script.js using express (Node JS)?
[英]returning data to index.js node express
为什么用户未定义?
db.js:
var MongoClient = require('mongodb').MongoClient var users; 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); }); });
index.js
var express = require('express'); var router = express.Router(); /* GET Userlist page. */ router.get('/userlist', function(req, res) { var users = require('../db').getUsers(); if (users==undefined) res.send('undefined'); else res.send('found something'); }); module.exports = router;
可以从Mongo正确检索该集合并将其记录到屏幕上,但是index.js中的用户未定义。
在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);
});
是调试的一部分,您真正想要返回的是用户集合。 重要的一点是将块作为getUsers()添加到module.exports中。
最后,我了解到它可以与此异步调用一起使用。 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;
});
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.