Показать сообщение отдельно
  #1 (permalink)  
Старый 01.11.2018, 10:55
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

организация кода
Коллеги, доброго времени суток. Пишу проект и встал вопрос в организации кода и кастомных модулей. Суть следующая:
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, но он не интересен. Вопрос, наверное по архитектуре приложения.))))

Заранее благодарю.
Ответить с цитированием