我要为节点js写一个js模块。该模块很简单:
var sum=function(a,b){
return a+b;
}
var product=function(a,b){
return a*b;
}
exports.sum;
exports.product;
我以这种方式打电话给模块:
var op=require("./sumProduct");
console.log(op.sum(3,4));
错误就是抛出。有人可以帮帮我吗?
答案 0 :(得分:2)
你这么近。而不是您的出口行,请使用此
module.exports = {
sum:sum,
product:product
};
答案 1 :(得分:1)
请记住以下一行:module.exports = exports = {}
这是什么意思? module.exports
只是一个对象。
确保它不是空和它包含程序员需要导出的所有内容,避免重写它的常见错误,或者在你的情况下,根本不写入它。< / p>
这是代码中的问题:
exports.sum; // Nothing is actually happening
exports.product; // in either of these lines.
退出sumProduct模块后,exports.sum
和exports.product
都未定义。没有为module.exports
对象赋值。
您的代码可以简洁地修复如下:
方法1
exports.sum = function (a, b) {
return a+b;
}
exports.product = function (a, b) {
return a*b;
}
或者,您可以使用以下任一方式构建模块:
方法2
module.exports = {
sum: function(a, b) {
return a+b;
},
product: function(a, b) {
return a*b;
}
};
方法3
var sum = function (a, b) {
return a+b;
}
var product = function (a, b) {
return a*b;
}
exports.sum = sum;
exports.product = product;