m.add不是一个函数(新节点js模块)

m.add is not a function (new node js module)

本文关键字:新节点 节点 js 模块 函数 一个 add      更新时间:2023-09-26

我是node js的新手,创建模块如下。我得到的是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中所做的那样),但看起来你并不需要。