Вызов функции из другого файла JS и структуры каталогов узла - PullRequest
0 голосов
/ 17 мая 2019

MessageHandler.HandleMessage(message); Вопрос может показаться состоящим из двух частей, но я думаю, что они могут частично совпадать.

Я делаю очень простое приложение Node, где теоретически я могу поместить все свои функции в один файл JS. Однако, как и в C # (где вы можете теоретически поместить все ваши классы на одной странице), это очень быстро загромождается и, вероятно, считается плохой практикой.

У меня есть базовая структура генерации узлов (как показано в возвышенном проводнике):

enter image description here

Но я не уверен, где находится стандартное место для меня, чтобы начать ставить 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 голосов
/ 17 мая 2019

На самом деле, ваш код верен, но требует небольшого добавления, вам нужно экспортировать требуемую функцию для показа или использования в другом файле 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');
...