将数据返回到索引.js节点表达式
returning data to index.js node express
为什么用户未定义?
分贝.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);
});
});
索引.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 正确检索并记录到屏幕,但索引中的用户.js给出未定义。
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 作为 getUsers()。
我最终让它与这个异步调用一起工作。索引.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;
});
});
});
在数据库中.js您没有使用 module.exports 来导出您的用户。
索引中的代码.js建议 db.js 导出带有 getUsers 函数的对象,但它没有。
相关文章:
- 如何处理node.js节点mongodb中的连接和查询队列
- 更新从Mysql查询检索到的数据?Node.js节点mysql
- Dracula Graph js节点点击事件
- 如何公开JS节点模块
- Vis.js节点上的动画牛眼
- 添加“;三角形向上”;在d3.js节点中
- 验证请求参数的最佳方法是帆.js/节点.js
- 如何在新窗口中打开 Arbor.js 节点链接
- D3.js节点映射中的缩放功能
- 如何围绕焦点旋转 d3.js 节点
- 问.js节点承诺.“套接字”上缺少错误处理程序.类型错误:无法调用未定义的方法“then”
- 将数据返回到索引.js节点表达式
- 如何添加属性以 go.js 节点和重定向
- Js 节点 - socket.io 聊天修饰符
- 如何使用 JSON 图像作为 D3.js 节点背景
- 条件语句在 JS(节点)中没有响应
- Sigma JS节点动画
- 更改d3.js节点的填充颜色
- Arbor Js-节点单击
- 循环中的JS节点