Какой фреймворк на Node.js выбрать сегодня?

У меня в разработке pet-проект. Изначально ковырял его на Meteor.JS, однако в какой-то момент понял, что Метеор меня не устраивает, во первых, слишком сильной связью клиента и сервера, а во вторых, он даже на неслабом ноуте сильно тормозит (постоянная загрузка процессора более 30%). В итоге у меня есть фронт на React, но нет бэкэнда. По сути, мне нужен REST бэк, с авторизацией и CRUD операциями. На текущий момент будут использоваться три модели - Call, Patient, User. Модель Patient связан с Call, как one-to-many. Аналогично с Call связана модель User. При добавлении в БД нового экземпляра Call необходима возможность автоматического создания нового экземпляра Patient (если его не существует).
Объем планируемых данных порядка 100 тысяч экземпляров Call, около 20 тысяч экземпляров Patient и около 100 экземпляров User.
И еще такой момент - хотелось бы, чтобы часть БД (около 100 записей) синхронизировалось бы с localstorage (чтобы была возможность некоторое время работать в офлайн без потери данных).

Вопрос, в общем-то, вот в чем: какой фреймворк сейчас выбрали бы вы, если бы делали подобный проект?
  • Вопрос задан
  • 3403 просмотра
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 8
adelkhalitov
@adelkhalitov
>
Серве я бы для любого проекта сейчас брал nestjs, я работаю на 2х преоктах, которые начали делалать 5+ лет назад. И самая большая проблема в том, что разработчики делают так как хотят, каждый разработчик это новый стиль написания кода, причем в 99% случаях этот код малорасширяем, приходится постоянно рефакторить. У нест есть крутая структура, которую пока не знаю как можно поломать, в доку указаны все рекомендации.

Есть крутой ОРМ, реализация будет очевидна для любого разраба если почитать доку.
Ответ написан
@MSAFT
Я бы выбрал fastify для бэкэнда. Он производительней конкурентов и поддерживает typescript.

Для фронта я бы выбрал Vue, потому что не зависят от большой компании(привет Angular и React), да и говорят в 3 версии уделают всех по производительности(хотя кому она нужна на сегодняшний день). Если нужен SSR под SEO, то чтоб не мучаться, если выбрал React сразу ставь next.js, если vue - nuxt. Если приложение будет большим, то не забываем про redux/vuex.

Базу данных надо выбирать строго под задачу, если связанные между собой то таблицы то строго реляционную - Postgresql или Mariadb. Если просто хранение каких-то данных, то лучше конечно Mongodb. Если какая-то запутанная соцсеть то neo4j. Если очереди нужны то redis. Сейчас на хайпе ещё graphql. ORM - если чисто JS - sequalize, если TS - TypeORM, если Монга - mongoose. Так что исходить надо от задач.

Так же неплох под бэкэнд NestJS, который советовали. Структурированно всё хорошо, запутаться будет тяжело и можно сразу начать писать, большой плюс поддержка TypeScript из коробки. Если на фронте использовать Angular, то вообще песня.

Я бы еще посоветовал adonis js, полный клон laravel на nodejs. Если работал на laravel то будет всё понятно. Да и структура laravel уже проверена годами.
Ответ написан
TAbrahamyan
@TAbrahamyan
Великий и могучий keystone.js
Ответ написан
@Che603000
c 2011 javascript
Сервер
https://expressjs.com/ru/

База данных mongodb с мангустом на ноде
https://mongoosejs.com/
Ответ написан
@AlexisKmetik
Если смысл в желании попробовать себя в бэкэнде и на собесе говорить, что "и это могу", то стек примерно:
Express, sequilize/typeorm,winston, passport, helmet, multer. И плюс еще с десяток важных зависимостей типа bcrypt, jimp, dotenv...
База любая SQL, а не вонючая монга. Берите мускуль.
Если в бэк не умеете и пока не понимаете глубину норы, то проще вообще его не писать, используйте вещи типа indexedDB, никто не оценит ваших стараний на базовом стеке экс+монго+спагетти.

Ах, да еще забыл добавить что выберите себе подходящий di-контейнер. И не забывайте бэк без ts время на ветер.
Ответ написан
Coral_Reef
@Coral_Reef
Javascript developer
Если речь идет о React на фронте, почему никто не посоветовал Next.js?
Вопрос без подкола, правда интересно.
Ответ написан
@NewBye
JS это отстой, которым все вынуждены пользоваться из-за отсутствия альтернативы.
Так что - Blazor.
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Molecularjs
Масштабируемость из коробки, простота создание микросервисов.
Аналитика производительности по всем методам в консоле, экспорт в популярные трекеры.
Есть русское комьюнити в телеграме, документация на русском/английском.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Яндекс Москва
от 100 000 до 300 000 ₽
Яндекс Санкт-Петербург
от 100 000 до 300 000 ₽
Кенарий Санкт-Петербург
от 120 000 до 300 000 ₽