Как использовать данные из маршрута (экспресс-фреймворка) с пользовательскими модулями? - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу использовать данные из определенного маршрута, чтобы другие пользовательские модули могли использовать эти данные, при необходимости изменить их, но данные должны быть доступны только в одном месте в целом. У меня мало проблем с этим.

Сначала я получаю данные в router.post по адресу route1.js:

    var express = require('express');
    var app = express();
    var router = express.Router();
    var module1 = require('../module`enter code here`s/module1.js'); // custom module for tests purposes only

    router.post('/data', function(req, res){
     var data = req.body.form_input;
     // let suppose I manage some additional work with data and finally get this globals object with all necessary data:
        var globals = {
            a : 'A',
            b : 'B',
            c : 'C'
        };
        /* module1('Our message from ROUTE1 - processed by MODULE1'); */
    });
module.exports = {
    router : router,
    globals : globals
};

Вопрос в том, как использовать объект globalsв маршруте, чтобы другие модули могли его использовать? Как вы видите, объект globalS не является реальным глобальным объектом, он находится в области действия router.post.

module1.js код:

var mod1 = require ('../routes/route1.js'); // cause we need globals object with all the data in it - but how to get it?

// this is just simple function presentation to better describe the problem
var logger = function(msg)
{
    console.log(msg);
}

module.exports = logger;

Итак, теперькогда мы помещаем приведенный ниже код в route1.js - отмените комментарий в / * * /:

module1('Our message from ROUTE1 - processed by MODULE1');

, мы можем увидеть сообщение - значит, модуль виден и работает. Но я не могу отредактировать объект globals.

Теперь, кроме всего этого кода, другой вопрос - какую настройку мне использовать для модулей? Должен ли я использовать версию node.js, версию ES6 (* .mjs --experimental-modules) или просто скомпилировать все с помощью babel / webpack? Какая из них является верной версией правильного варианта выполнения «модулей»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...