Я хочу использовать данные из определенного маршрута, чтобы другие пользовательские модули могли использовать эти данные, при необходимости изменить их, но данные должны быть доступны только в одном месте в целом. У меня мало проблем с этим.
Сначала я получаю данные в 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? Какая из них является верной версией правильного варианта выполнения «модулей»?