如何将参数传递给nodejs模块

时间:2014-10-29 17:46:46

标签: node.js

我正在使用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
}

然后我怎样才能得到我的论证的价值?

2 个答案:

答案 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();