我正在尝试创建一个基于node.js的网站,我将在mongodb中保存信息
我的APP.JS文件在下面给出
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
exports.helloworld = function(req, res){
res.render('helloworld', { title: 'Express: Hello World' })
};
exports.userlist = function(req, res){
var db = req.db;
var collection = db.get('usercollection');
collection.find({},{},function(e,docs){
res.render('userlist',{
"userlist":docs
});
});
//res.render('userlist', { title: 'Express: User List' })
};
路由目录中的INDEX.JS文件在下面给出
db.usercollection.insert({ "username" : "testuser1", "email" : "testuser1@testdomain.com" })
我已经使用命令提示符
创建了用户集合db.usercollection.find().pretty()
使用
查询{
"_id" : ObjectId("5202b481d2184d390cbf6eca"),
"username" : "testuser1",
"email" : "testuser1@testdomain.com"
}
已收到结果
500 TypeError: Cannot read property 'get' of undefined at exports.userlist (/var/www/html/node/nodetest1/routes/index.js:17:21)
但是当我尝试使用
查看此浏览器的输出时http://localhost:3000/userlist
然后我得到以下错误
var db = req.db;
console.log(db);
当我这样做时
$("table").dataTable({}, $("table").databar());
然后在控制台上它显示未定义,在浏览器上也显示db'undefined'表示APP.JS中的 db对象在ROUTES / INDEX.JS中不可用
我是所有这些新手,所以需要你的帮助。
最好的问候
答案 0 :(得分:0)
我设法删除错误。 以下是我更新的ROUTES / INDEX.JS文件
var mongo = require('mongodb'),
Server = mongo.Server,
Db = mongo.Db;
var server = new Server('localhost', 27017, {
auto_reconnect: true
});
var db = new Db('nodetest1', server);
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
exports.helloworld = function(req, res){
res.render('helloworld', { title: 'Express: Hello World' })
};
exports.userlist = function(req, res){
var uc = db.collection('usercollection');
uc.find({},{},function(e,docs){
res.render('userlist',{
"userlist":docs
});
});
//res.render('userlist', { title: 'Express: User List' })
};
我还评论了APP.JS中的以下几行
//, mongo = require('mongodb')
//, monk = require('monk');
//var db = monk('localhost:27017/nodetest1');
答案 1 :(得分:-1)
如果您使用的是Express 4:
所有路由方法都将按其出现的顺序添加。 你不应该做app.use(app.router)。这消除了最常见的 快递问题。
来源https://github.com/strongloop/express/wiki/New-features-in-4.x
所以这可能是你问题的根源。