Коллеги, доброго времени суток. Пишу проект и встал вопрос в организации кода и кастомных модулей. Суть следующая:
const Engine = require(`./engine`);
const engine = new Engine;
engine.run();
Собственно понятно все!)))
Дальше engine.js
'use strict';
const Router = require('./router');
const Render = require('./render');
const Session = require('./session');
const Config = require('./config.json');
const http = require(`http`);
class Engine {
constructor() {
this.config = Config;
this.server = {};
this.router = new Router;
this.render = new Render;
this.session = new Session;
}
run() {
this.server = http.createServer(this.router.requestHandler);
console.log(this.request);
this.server.listen(this.config.port, this.config.host, () => {
console.log('server ready...');
});
}
}
module.exports = Engine;
Суть вопроса такова. есть тчк входа, как ранее сказал, которая инициализирует главный объект Engine. У которого есть свойства, другие объекты, которые выполняют свои задачи.
Как заставить эти свойства общаться друг с другом?
Например, при создании сервера, в createServer ложим this.router.requestHandler для обработки запросов, который, обращается к this.session, например, и вытаскивает пользователя, а потом вызывает метод у this.render, который минифицирует страницу и отдает ее клиенту.
Может коряво конечно сформулировал вопрос))) Простите) Но как всегда есть куча разной информации по express, но он не интересен. Вопрос, наверное по архитектуре приложения.))))
Заранее благодарю.