2015-10-15 60 views
1

伊夫节点moudle,我需要出口两个函数和得到到两个函数的参数ARG1,我尝试用下面我有错误,我究竟做错了什么?节点模块使用错误

UPDATE

伊夫2层内部模块的方法

1. I need to expose it outside and to call it explicit from other 
module with parameter 

require('./controller/module')(functionName1)(parameter); 
  • 该模块中的另一个功能(functionName2),我需要用两个参数调用它显式,我该怎么做对不对?
  • 回答

    1

    这不是很清楚自己想要做什么,但我想你想这样的事情:

    module.exports = function (arg1) { 
        return { 
        server: function (params1) { 
         //do something with arg1 and params1 
        }, 
        proc: function (params2) { 
        //do something with arg1 and params2 
        } 
    } 
    }; 
    

    和使用模块:

    var arg1 = 'whatever' 
    var myMod = require('myMod')(arg1); 
    myMod.server(); 
    myMod.proc(); 
    

    选项2

    如果我看看你的新例子

    require('./controller/module')(functionName1)(parameter); 
    

    您需要导出返回另一个函数(Higher Order Function)的函数的模块。

    因此,例如:

    module.exports = function(functionName1) { 
        if(functionName1 === 'server'){ 
         return function server(parameter){ 
          //do your stuff here 
         } 
        } 
    
        if(functionName1 === 'proc'){ 
         return function proc(parameter){ 
          //do your stuff here 
         } 
        }  
    }; 
    
    +0

    谢谢,我需要的东西有点不同势,我更新的问题,是不是更清晰了吧? –

    +0

    我更新了我的示例。 – PatrickD