我正在主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