Popular Node.js patterns and tools to re-consider

Created on 29 августа 2022 г..

Статья от автора книг “JavaScript testing best practices” and “Node.js best practices”. Он рассматривает популярные в node.js мире паттерны и инструменты и оценивает их с точки зрения, насколько это актуально сейчас и какие есть альтернативы.

Короткий список:

  • Dotenv для загрузки конфига из .env файла => Предлагается использовать convict
  • Жирный сервис, вызываемый из контроллера => Предлагается декомпозировать, создавая use-case
  • Закинуть все в DI (например в Nest.js) => Предлагается закидывать только то, что нужно конфигурировать
  • Passport.js => Слишком жирное решение, вместо комбайна следует использовать точечные библиотеки
  • Supertest для тестов api => http-библиотека + assert’ы от фреймворка тестирования
  • Декораторы fastify для функций (не для обработчкиов реквеста или веб-утилит) => корректная декомпозиция
  • Логирование из catch => Дополнение контекста ошибки в catch, но единое логирование в глобальном обработчике
  • Использование morgan => Используйте удобный вам логгер, напишите руками небольшую мидлварку
  • Условия на NODE_ENV => следует избегать

Я очень сильно утрировал. Какие-то пункты очень странные. Я, например, не знал, что кто-то использует API fastify, потому что лень самим декоратор написать над функцией. Но во многих пунктах полезно прочесть не конкретную рекомендацию (они как раз неинтересны), а то, почему текущий паттерн - может быть плох, и на каких принципах следует основывать выбор паттерна или инструмента

By using this site, you agree that you have read and understand its Privacy Policy.