В данной статье я расскажу вам как исходя из своего опыта я написал небольшой npm-модуль, который помог мне и, думаю, может помочь вам сэкономить приличное количество времени и сократить код практически в два раза.
Все начал с того что я решил написать изоморфный CMS для одного из моих проектов с использованием следующих технологий:
- React — для постройки UI
- Express — в качестве сервера
- MongoDb + Mongoose — noSQL база данных
- graphQL — основной API для взаимодействия с базой данных
- Apollo-Client — коннектор для удобного вызова запросов и мутаций через graphQL
- webpack — для сборки проекта и разделения клиентского и серверного кода
Упрощенная архитектура выглядит следующим образом:
__root
1 |__client
2 |__public
3 |__middleware
4 |__server
- React-компоненты
- Бандл клиентского кода и остальные публичные файлы
- Mongoose: схемы, дополнительные методы и graphQL: типы, класс с запросами, класс с мутациями, схема
- Бандл серверного кода вместе с express сервером