我有一个简单的文件model.js
,如下所示:
var mongo = require('mongodb');
var mongoUri = process.env.MONGOLAB_URI ||
process.env.MONGOHQ_URL ||
'mongodb://localhost/mydb';
exports.connect = mongo.Db.connect(mongoUri, function(err, db) {
console.log("Connect to the database successfully")
});
在我的web.js
我使用model = require('./model.js')
加载模型。一个令人担忧的事情是,虽然我没有调用model.connect()
,但消息“成功连接到数据库”仍然记录到我的控制台。为什么会发生这种情况并且有办法避免它?
编辑:没关系,我找到了一个解决方法:
exports.connect = function(){
mongo.Db.connect(mongoUri, function(err, db) {
console.log("Connect to the database successfully")
});
}
答案 0 :(得分:3)
exports.connect = mongo.Db.connect(mongoUri, function(err, db) {
console.log("Connect to the database successfully")
});
您刚刚致电mongo.Db.connect()
并将其结果分配给exports.connect
。
只要您require()
模块,该代码即会运行。
相反,您需要创建一个函数:
exports.connect = function() { ... };