我正在使用nodeJS,我想将参数传递给模块
function (req, res, next) {
var test = require('test')({key: 'abc'});
}
当我像这样编写模块时,我能够获得模块内部键的值
module.exports= function(key) {
console.log(key);
}
但如果我像这样编写我的模块:
exports.fun1 = function(req, res, next) {
//something here
}
exports.fun2 = function(req, res, next) {
//something here
}
然后我怎样才能得到我的论证的价值?
答案 0 :(得分:3)
你几乎拥有它。你使你的导出成为一个接受你的参数的函数,然后你从该函数return
得到模块内容如下:
用法:
var test = require('test')({key: 'abc'});
function (req, res, next) {
test.fun1(yourArgsHere);
}
在你的模块中:
// module constructor function
module.exports = function(options) {
console.log(options);
return {
fun1: function(req, res, next) {
// can access options.key here
// something here
},
fun2: function(req, res, next) {
// can access options.key here
// something here
}
};
}
答案 1 :(得分:2)
您可以将其保存在本地var中,或者在模块中创建类似函数的构造函数
类似这样的事情
var _arg1, _arg2;
module.exports = {
ctor: function(arg1, arg2, etc) {
_arg1=arg1;
_arg2=arg2
},
moreFunction: function() {
//use _arg1 etc
}
}
然后使用将是:
var myModule = require('myModule');
myModule.ctor("bla", 2, null);
myModule.moreFunction();