1

我最近开始研究 MEAN 技术。

我有一个模块 myModule。它具有访问数据库的路线、服务、模型。

我在一个单独的目录中创建了另一个项目 myAnotherModule,并将“npm link”编辑到 myModule 中。当我尝试在 myAnotherModule 中使用 Mongoose 时,它​​无法使用正确的凭据访问数据库。

在 myAnotherModule 的以下代码中,

var db  = mongoose.connection.db;
var mongoDriver = mongoose.mongo;
var gfs = new grid(db, mongoDriver);

它没有找到mongoose.connection.dbanddb是未定义的。而如果我在 myModule 中使用这些行,那么代码就可以正常工作。

为什么 myAnotherModule 找不到mongoose.connection.db?npm 链接是如何工作的?

4

2 回答 2

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');
};
于 2017-09-07T13:08:15.090 回答
0

我最近也碰巧遇到了这个问题。通常人们将数据库配置分开,从而导致此问题。尝试在确保 mongodb 已连接的适当块中声明。

  db.once('open', function callback () {
        var gfs = new grid(mongoose.connection.db, mongoDriver);
   });
于 2017-09-07T14:52:19.593 回答