从另一个 JS 文件和节点目录结构调用函数

Calling a function from another JS file And Node Directory Structure

MessageHandler.HandleMessage(message);这个问题似乎分为两部分,但我认为它们之间可能会有重叠。

我正在制作一个非常简单的 Node 应用程序,理论上我可以将所有函数放在同一个 JS 文件中。然而,就像 C#(理论上您可以将所有 类 放在同一页上)一样,这很快就会变得混乱,并且可能被认为是不好的做法。

我有基本的节点生成结构(如sublime explorer中所示):

但我不确定 标准 我开始放置 JS 的地方在哪里。

回到我问题的第一部分,我有这个非常简单的代码。

    //file: MyNode.js
    const MessageHandler = require('MessageHandler.js');
    var message = "Hello world!";
    MessageHandler.HandleMessage(message);

并且:

    //file: MessageHandler.js
    function HandleMessage(message)
    {
        Console.log('Message is this: ' + message);

    }

它们在同一个文件目录中,但在执行过程中出现 HandleMessage is not a function. 类型错误。是否存在我没​​有发现的结构或范围问题?

实际上,您的代码是正确的,但需要添加的内容很少,您需要导出所需的函数以在另一个 js 文件中公开或使用。

// a.js
anyFun() {
// body
}

you can use module.exports = anyFun;

//b.js

let a = require('./a')

a(); 

    In your case:

    //file: MessageHandler.js
       module.exports.HandleMessage = function HandleMessage(message)
    {
        console.log('Message is this: ' + message);

    }

   //file: MyNode.js

  let demo = require("./MessageHandler");

  demo.HandleMessage('hello');