Javascript m、 添加不是一个函数(新节点js模块)
我是NodeJS新手,创建模块如下。 我得到的是m.add不是Object.anonymous上的函数 Module.jsJavascript 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,
(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在内部用来包装模块逻辑的。