很抱歉,如果这是非常明显的事情,但这是我在javascript
处理node.js
中导出模块的第一个作业。
我有两个文件:1)ADT.js
和2)main.js
。
我正在尝试将ADT.js
的一些功能导出到main.js
以下是ADT.js
中的代码:
module.exports = {};
var exports = module.exports;
var wordCount = function(text) {
var data = readFile(text);
if(checkEmptyFile(data)){
return null;
} else {
// do something
}
};
//==================== Helper Functions ==================================
function readFile (file){
var fs = require('fs');
var data = fs.readFileSync(file, "utf8");
return data;
}
function checkEmptyFile(data){
if(data.replace(/\s+/, '') === ''){
return true;
}
}
/** adding the functions to the exports module */
exports.wordCount = wordCount;
main.js
中的代码:
/** Importing the data_structures.js module */
var adt = require("./ADT");
var main = function(...){
if (firstWord === ""){
console.log(...);
} else {
makePoem(...);
if(printResult === true){
console.log("Word Count: "+
JSON.stringify(adt.wordCount(fileName)));
console.log("");
}
}
};
var makePoem = function(...){
...;
};
我是否还需要导出辅助函数?我不打算在main.js
。
答案 0 :(得分:5)
从模块导出函数的目的纯粹是为了使其可供其他模块使用。如果该函数仅在当前模块中使用,并且您打算以此方式保留该函数,则没有理由将其导出。
您可以考虑在模块中定义的函数,但不能导出为" local"模块专用的函数。您可以在定义它们的模块中的任何位置使用它们,但不能从其他模块调用它们。导出它们的行为(将它们指定为else
的属性)使它们可以从外部世界调用。