javascript - 我需要在以下 JavaScript 代码中导出辅助函数吗?

标签 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 中的任何位置显式使用辅助函数。

最佳答案

从模块导出函数的目的纯粹是为了使其可供其他模块使用。如果该函数仅在当前模块中使用,并且您打算保持这种状态,那么就没有理由导出它。

您可以认为在模块内定义的函数,但不导出为模块私有(private)的“本地”函数。您可以在定义它们的模块内的任何位置使用它们,但不能从其他模块调用它们。导出它们的行为(将它们分配为 module.exports 的属性)使它们可以从外部世界调用。

关于javascript - 我需要在以下 JavaScript 代码中导出辅助函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982319/

相关文章:

javascript - React - 将函数值返回给 setState

javascript - 无法为 JWT 正确设置 Exp 和 Iat

node.js - Node/ react 应用程序返回 "SyntaxError: Unexpected token import"错误

javascript - 查找最近的 GETBoundingClientRect

javascript - Slick Slider fade true 不适用于垂直 slider

javascript - 为 Rails 设置 JavaScript 格式

javascript - 如何在不嵌套的情况下将字符串多次拆分为数组? JavaScript

javascript - 如何导入 NodeJS winston-daily-rotate-file 依赖项?

javascript - 监听来自另一个 Node.js 应用程序的通知

node.js - 在AWS中找不到模块 'extend' Lambda Node JS