簡體   English   中英

從另一個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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM