我是否需要在以下javascript代码中导出帮助函数?

时间:2015-10-07 01:27:35

标签: javascript node.js

很抱歉,如果这是非常明显的事情,但这是我在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

中的任何地方明确使用辅助函数

1 个答案:

答案 0 :(得分:5)

从模块导出函数的目的纯粹是为了使其可供其他模块使用。如果该函数仅在当前模块中使用,并且您打算以此方式保留该函数,则没有理由将其导出。

您可以考虑在模块中定义的函数,但不能导出为" local"模块专用的函数。您可以在定义它们的模块中的任何位置使用它们,但不能从其他模块调用它们。导出它们的行为(将它们指定为else的属性)使它们可以从外部世界调用。