Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   организация кода (https://javascript.ru/forum/node-js-io-js/75719-organizaciya-koda.html)

Роман Андреевич 01.11.2018 10:55

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

Заранее благодарю.

Audaxviator 01.11.2018 12:40

Ну вот там, ниже, вопрос был про Express.
И вот прашивается, почему бы не поставить его глобально и не напейсать затем команаду express --view=pug my-project?
И уже есть готовый "костяк", и не нужно выдумывать велосипеды (которые, к тому же, ещё не понятно - будут ли ездить).
Потом ведь ещё будет над чем поразмыслить - так оно обычно бывает.


Часовой пояс GMT +3, время: 16:52.