Подтвердить что ты не робот

Как передать параметры в модуль node?

Если у меня есть модуль node (я написал), и я хочу передать ему значение, я мог бы сделать это:

var someValue process.env.SomeKey || '';

var someModule = require('./someModule');

someModule.setOption({ 'SomeKey' : someValue });

но мне кажется, что я изобретаю колесо.

Есть ли лучший способ сделать это или это полностью субъективно?

4b9b3361

Ответ 1

В общем, вы просто экспортируете функцию из модуля:

module.exports = function(opts){
    return {
        // module instance
    };
}

затем на требуемой странице:

var mod = require('module')({ someOpt: 'val' });

Но на самом деле делайте это, как хотите. Там нет стандартного стандарта.

Ответ 2

Я вообще строю модули, которые имеют похожие компоненты, иногда только один класс или даже просто выбор методов.

(function () {
  var myClass = function (opts) {
    this.opts = opts;
  };
  myClass.prototype.blah = function () {
    console.log('blah');
  };
  exports.myClass = myClass;
})();

Затем в вашем файле, который использует этот модуль.

var mymodule = require('./mymodule');
var myInstance = new mymodule.myClass({opt1: 'blah'});
myInstance.blah();

Конечно, вам не нужно просто обходить объект опций:)

Ответ 3

Да, это полностью субъективно.

Делать это так, как вы показали, прекрасно. Вы также можете просто экспортировать функцию или класс, назначив ее module.exports.