Javascript NodeJS-导出多个函数
我正在尝试构建我的第一个NodeJS模块。 这就是我正在做的:Javascript NodeJS-导出多个函数,javascript,node.js,Javascript,Node.js,我正在尝试构建我的第一个NodeJS模块。 这就是我正在做的: var text = function(){ this.padRight = function(width, string, padding){ return (width <= string.length) ? string : this.padRight(width, string + padding, padding); }; this.cleanText = function(t
var text = function(){
this.padRight = function(width, string, padding){
return (width <= string.length) ? string : this.padRight(width, string + padding, padding);
};
this.cleanText = function(text){
if (typeof text !== 'undefined') {
return text.replace(/(\r\n|\n|\r)/gm,"");
}
return null;
};
this.printOut = function(outputObj){
var module = this,
output = "";
outputObj.forEach(function(obj){
switch(obj.type){
case "date" :
var date = obj.contents;
if(typeof date != "undefined") output += date.toString().substring(4, 25) + "\t";
break;
case "string":
var string = obj.contents;
if(typeof string != "undefined"){
string = module.cleanText(string);
if(typeof obj.substring != "undefined" && obj.substring != 0) {
string = string.substring(0, obj.substring);
}
if(typeof obj.padRight != "undefined" && obj.padRight != 0) {
string = module.padRight(15, string, " ");
}
output += string + "\t";
}
break;
}
});
console.log(output);
};
};
module.exports.text = text;
但是我犯了一个错误
如何在同一模块中导出不同的函数并分别调用它们
谢谢问题在于
文本
本身就是一个函数,在我看来,您想要导出的是文本
的实例,而不是函数本身,即
module.exports.text = new text();
您的代码有些混乱,因为您正在定义一个构造函数,您正在导出它(正如James所指出的)。这是令人困惑的,因为在JS中使用大写字母编写构造函数是一种习惯 我建议使用与James不同的解决方案,即不导出新的Text(),而是导出构造函数本身。 在需要此对象的模块中,将此模块作为
var Text=require('./Text')导入编码>并执行新文本()部分。导出新文本()有一个缺点,就是您实际上创建了一个单例,这可能是您的意图,也可能不是。
请记住,模块上的require()实际上只执行一次,当不同的模块加载上述模块时,它们是相同的对象
module.exports.text = new text();