2014-12-12 2 views
2

Я вполне уверен, что есть способ передать переменную, используя require.Node.js - передающий объект с требованием

Так это будет выглядеть примерно так:

var model = require('model')(mongoose); 

С выше строками коды, я хочу передать мою модель подаст информацию из базы данных (мангуста), так что, если я получить доступ к той же самой модели с разные базы данных, я могу передать ему различные данные базы данных.

Однако, даже если приведенный выше синтаксис верен, я не уверен, что должен выглядеть мой файл модели. Может ли кто-нибудь помочь мне с этим?

ответ

3
module.exports = function (mongoose) { 
    // . . . 
    return model; 
}; 
+0

слово thx, поэтому я думаю, что я не могу назначить что-либо еще для module.exports в этом случае –

+1

Вы можете, функции являются объектами. 'module.exports.foo = 'bar';' будет работать. – generalhenry

+1

Экспресс работает таким образом, это функция 'var app = express();' с методами 'app.use (express.static (__ dirname + '/ public'));' – generalhenry

2

Вы можете передать moongoose аргументом в этот файл

var model = require('model')(mongoose); 

Ваш модуль будет выглядеть следующим образом, вы можете создать объект в module.exports и может прикрепить несколько свойств к этому объекту и в конце вернуть его из функции

module.exports = function (mongoose) { 
    model ={}; 
    model.properties = {}; 
model.yourfunction1 = function(){}; 

    return model; 
}; 

Я предполагаю, что я не могу ничего другого module.exports назначить в данном случае?

Ответ на ваш комментарий объяснен ниже

Выбор между module.exports и экспорта зависит от вас

Для экспорта

exports.object1 = {}; 
exports.object2 = {}; 

Для module.exports

module.exports = function(){ 
myobj={} 
myobj.object1 = {}; 
myobj.object2 = {}; 
return myobj 
} 

Теперь вызов будет отличаться

Для экспорта будет непосредственно доступна на файловой переменной

var file = require('./file'); 
console.log(file.object1); 

Для module.exports вы будете выполнять его как функцию по добавление функции скобки, чтобы объект мог быть возвращен

var file = require('./file')(); 
console.log(file.myobj.object1); 
Смежные вопросы