2014-02-04 2 views
1

У меня есть простой файл model.js нравится следующим образом:Node.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(), сообщение «Подключиться к базе данных успешно» все еще было зарегистрировано на моей консоли. Почему это происходит, и есть ли способ избежать этого?

EDIT: Ничего я нашел обходной путь:

exports.connect = function(){ 
    mongo.Db.connect(mongoUri, function(err, db) { 
     console.log("Connect to the database successfully") 
    }); 
} 

ответ

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() { ... }; 
+0

спасибо, я только что обнаружил ошибку себя тоже :) – dorafmon

Смежные вопросы