我应该如何将选项传递给节点模块?

mat*_*att 13 node.js

如果我有一个节点模块(我写)并且我想传递一个值,我可以这样做:

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

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

someModule.setOption({ 'SomeKey' : someValue });
Run Code Online (Sandbox Code Playgroud)

但感觉就像是在重新发明轮子.

有没有更好的方法来做到这一点还是完全主观的?

Mar*_*ahn 32

通常,您只需从模块中导出一个函数:

module.exports = function(opts){
    return {
        // module instance
    };
}
Run Code Online (Sandbox Code Playgroud)

然后在需求页面中:

var mod = require('module')({ someOpt: 'val' });
Run Code Online (Sandbox Code Playgroud)

但实际上,无论你想做什么,都要这样做.没有固定的标准.