我最近开始研究MEAN技术;
我有一个模块myModule。它有路由,服务,模型访问数据库。
我在另一个目录中创建了另一个项目myAnotherModule,并且有" npm link"将它编入myModule。当我尝试在myAnotherModule中使用Mongoose时,它无法使用正确的凭据访问DB。
在myAnotherModule中的以下代码中,
var db = mongoose.connection.db;
var mongoDriver = mongoose.mongo;
var gfs = new grid(db, mongoDriver);
未找到mongoose.connection.db
且db
未定义。
如果我在myModule中使用这些行,那么代码工作正常。
为什么myAnotherModule无法找到mongoose.connection.db
?
npm链接如何工作?
答案 0 :(得分:1)
尝试按以下方式连接:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
console.log("h");
});
exports.test = function(req,res) {
res.render('test');
};
答案 1 :(得分:0)
我最近碰巧也遇到过这个问题。通常人们分开db config会导致此问题。尝试在适当的块中声明确保mongodb已经连接。
db.once('open', function callback () {
var gfs = new grid(mongoose.connection.db, mongoDriver);
});