无法在另一个JavaScript文件中访问mongoose.createConnection()

时间:2019-08-02 14:16:38

标签: node.js mongodb mongoose

我正在主app.js文件内的mongoose.createConnection()连接到MongoDB。我在userModel.js文件中定义数据库模型,如下所示:User = db.model(...),其中'db'是从app.js导入的连接。 我考虑了connect()和createConnection()之间的区别[请参阅:Queries hang when using mongoose.createConnection() vs mongoose.connect()

我收到错误cannot read property 'model' of undefined,即db未定义。

我尝试在app.js(定义连接)中定义相同的模型,并且一切正常(定义了 db )。

因此,我认为导出/导入连接变量一定有问题。

但是,当我将鼠标悬停在userModel.js中导入的 db 变量上时,将显示与定义它的app.js相同的信息弹出窗口(请参见图片以证明)。因此,我认为导入/导出成功。

这就是我创建和导出连接的方式。

// Connect to mongoose
var dbUrl = process.env.MONGOLAB_CHARCOAL_URI || keys.mongodb.dbURL;
var db = mongoose.createConnection(dbUrl, {
    useNewUrlParser: true,
});

exports.conn = db;

[userModel.js]

var db = app.db;
var UserSchema = new Schema({ ... })
module.exports = db.model('user', UserSchema); // error is here

proof 1 that the variable was exported/imported successfully

proof 2 that the variable was exported/imported successfully

0 个答案:

没有答案