Node.js - Mongoose不在包含的包中访问DB

时间:2017-09-07 12:30:11

标签: node.js npm npm-link

我最近开始研究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.dbdb未定义。 如果我在myModule中使用这些行,那么代码工作正常。

为什么myAnotherModule无法找到mongoose.connection.db? npm链接如何工作?

2 个答案:

答案 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);
   });
相关问题