[英]how avoid undefined is not a function
我正在為節點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));
錯誤被拋出。 有人可以幫助我嗎?
你太近了 代替您的出口線,使用這個
module.exports = {
sum:sum,
product:product
};
記住這一行: module.exports = exports = {}
這是什么意思? 該module.exports
只是一個對象。
為了確保它不是空的,它包含了所有程序員需要出口,避免覆蓋它的常見錯誤,或者在你的情況,一點都沒有寫它。
這是您的代碼中的問題:
exports.sum; // Nothing is actually happening
exports.product; // in either of these lines.
無論exports.sum
和exports.product
在流出SUMPRODUCT模塊后不確定。 沒有為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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.