NodeJS模块导出中的多个功能

时间:2017-11-22 16:11:33

标签: javascript node.js module require

一般的想法是我需要一个module.export函数内的函数。我们说我有两个文件:foo.jsmath.js。它们位于同一文件夹中。

// foo.js
var calc = require('./math.js');

var a = 3, b = 5;
console.log(calc.calc(a, b));

它会请求导出模块将两个数字加在一起。

// math.js
module.exports = {
    calc: function(a, b) {
        // I need to call another function which does the math right here.
    }
}

如果我像下面尝试的那样嵌套它们,它只会返回undefined

// math.js
module.exports = {
    calc: function(a, b) {
        x(a, b);

        function x(a, b) {
            return a + b;
        }
    }
}

返回undefined

// math.js
module.exports = {
    calc: function(a, b) {
        x(a, b);
    }
}

 function x(a, b) {
     return a + b;
 }

返回b is not a function

如何在导出模块中嵌套函数?我是Node的新手,所以这听起来像是一个基本的问题,但我真的无法让它发挥作用。

编辑:这非常简化。我知道我可以在第一个计算函数中进行数学计算,但在我的实际代码中这是不可能的。

1 个答案:

答案 0 :(得分:1)

return语句结束函数执行并指定要返回给函数调用者的值

  嵌套函数中的

module.exports = {
    calc: function(a, b) {
        return  x(a, b);    //Function should Return a Value    
        function x(a, b) {
       return a + b;    
        }
    }
}
  

私人范围方法

module.exports = {
    calc: function(a, b) {
        return  x(a, b);                
    }
}

function x(a, b) {
       return a + b;    
        }
  

输出

- > foo.js

var calc = require('./math.js');
console.log(calc.calc(1,2)); ----> 3