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

时间:2019-05-17 08:42:43

标签: javascript node.js file-structure

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

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

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

enter image description here

但是我不确定在哪里放置 standard 来开始放置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.类型错误。我没有看到结构或范围问题吗?

1 个答案:

答案 0 :(得分:0)

实际上,您的代码是正确的,但几乎不需要添加,您需要导出所需的函数以在另一个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');