Javascript m、 添加不是一个函数(新节点js模块)

Javascript m、 添加不是一个函数(新节点js模块),javascript,node.js,Javascript,Node.js,我是NodeJS新手,创建模块如下。 我得到的是m.add不是Object.anonymous上的函数 Module.js (function(exports, require, module, __filename, __dirname) { exports.add = add; exports.multiply = multiply; function add(number1, number2) { return parseInt(number1,

我是NodeJS新手,创建模块如下。 我得到的是m.add不是Object.anonymous上的函数

Module.js

(function(exports, require, module, __filename, __dirname) {
    exports.add = add;
    exports.multiply = multiply;

    function add(number1, number2) {
        return parseInt(number1, 10) + parseInt(number2, 10);
    }

    function multiply(number1, number2) {
        return parseInt(number1, 10) * parseInt(number2, 10);
    }
});
App.js

var m = require('./module');

console.log(m.add(3, 5));
console.log(m.multiply(4, 5));

不确定为什么要这样包装代码,但下面是
module.js
的外观:

function add(number1, number2) {
  return parseInt(number1, 10) + parseInt(number2, 10);
}

function multiply(number1, number2) {
  return parseInt(number1, 10) * parseInt(number2, 10);
}

// don't export your functions individually
// export them on an object (which is how you use them in your app)
module.exports = {
  add: add,
  multiply: multiply
}

如果您愿意,还可以为您的函数执行单独的导出(就像您在
module.js
中所做的那样),但是看起来你也不需要它。

你正在创建匿名函数,但你从未调用过它。代码中不起作用的是你编写它的顺序。我认为上面问题中使用的IIFE签名是node.js在内部用来包装模块逻辑的。