Добавить в корзинуПозвонить
Найти в Дзене
RebelTech

Разработка CMS. Часть 1. Введение в проект.

Доброго времени суток читатель, сегодня мы начнём разработку Open-source CMS на основе Node.JS. Данная CMS будет разрабатываться на основание пожеланий/предложения сообщества. Также данная CMS и ряд публикаций по ее разработки является визуальным учебником по разработке CMS на основе Node.js. По мере разработки проекта, данный по нему будут выкладываться в общий доступ для скачивания, как примера как должно работать. Используемые библиотеки. Для написания CMS будет использовано несколько дополнительных библиотек. В начале мы рассмотрим минимальный перечень библиотек, в дальнейшем при необходимости будем добавлять новые или будем создавать их реализации руками. Библиотеки которые будут использоваться: 1. Express.js (Express)- это минималистичный и гибкий веб-фреймворк для приложений Node.js, предоставляющий обширный набор функций для мобильных и веб-приложений; 2. Body-parser- промежуточный обработчик для Express, который осуществляет парсинг тела запроса (POST-запрос); 3. Cookie-parser
Оглавление

Доброго времени суток читатель, сегодня мы начнём разработку Open-source CMS на основе Node.JS. Данная CMS будет разрабатываться на основание пожеланий/предложения сообщества. Также данная CMS и ряд публикаций по ее разработки является визуальным учебником по разработке CMS на основе Node.js. По мере разработки проекта, данный по нему будут выкладываться в общий доступ для скачивания, как примера как должно работать.

Используемые библиотеки.

Для написания CMS будет использовано несколько дополнительных библиотек. В начале мы рассмотрим минимальный перечень библиотек, в дальнейшем при необходимости будем добавлять новые или будем создавать их реализации руками.

Библиотеки которые будут использоваться:

1. Express.js (Express)- это минималистичный и гибкий веб-фреймворк для приложений Node.js, предоставляющий обширный набор функций для мобильных и веб-приложений;

2. Body-parser- промежуточный обработчик для Express, который осуществляет парсинг тела запроса (POST-запрос);

3. Cookie-parser - промежуточный обработчик для Express, парсер cookie;

4. Mongoose - Библиотека для работы с MongoDB, позволяющая упрощать работы по взаимодействию с БД, а также проводить автоматически проверки корректности данных по средствам схем-таблиц;

5. Morgan - промежуточный обработчик для Express, для логирования HTTP-запросов;

6. Pug - это препроцессор HTML и шаблонизатор, который был написан на JavaScript для Node.js;

7. Bcrypt - библиотека для безлопастного хэширования пароля;

8. Passport — это промежуточное ПО для аутентификации для Node.js. Чрезвычайно гибкий и модульный, Passport можно незаметно вставить в любое веб-приложение на основе Express.

9. Jsonsebtoken - библиотека для работы с web-токеном в формате JSON.

И несколько вопрос к аудитории которая знакома с node.js какие библиотеки посоветуете для работы с загрузки файлов?

Какую библиотеку лучше использовать для работы с конфиг файлами (на первых парах будет использоваться обычный json, который будет импортироваться).

Архитектура приложения.

В начальных реализациях cms будет использоваться MongoBD для хранения данных, со временем будет созданы вариации хранения на SQLite, MySQL (с поддержкой форков), Postgresql (может Postgres Pro).

CMS будет обладать как полным рендерингом страницы на сервере, так и REST API. Для удобства поддержания проекта обработчики запросов будут одинаковыми.

Проект будет разделен на следующие части:

  1. Routers - будут описываться маршруты;
  2. Controllers - Будут описываться контроллеры каждого адреса;
  3. Services - будут описываться обработчики запросов;
  4. Models - будут описываться структура для БД MongoDB;
  5. Middleware - будут располагаться промежуточные обработчики;
  6. Kernel - ядро CMS;
  7. Views - шаблоны страниц;
  8. Config - директория с конфигами системы

В дальнейшем будет вынесен в отдельный каталок работа с БД. Система инициализации будет реализована в пределах папки ядра и файлов конфигурации.