Как сделать чистую архитектуру для RestAPI на NodeJs

Я думаю переместить некоторые службы REST в NodeJS. Единственное, о чем я беспокоюсь, - это архитектура такого решения.

существует ли где-то какое-то руководство? Конечно, я видел такую библиотеку, как restify. Это хорошее начало, но недостаточно.

Я ищу разделение слоя, инъекцию зависимостей, модульные тесты, csrf и многое другое.

3 ответов


Взгляните сюда:http://nodeframework.com/

Это список фреймворков Nodejs для различных применений. Вы будете отображать веб-страницы? Скорее всего, вы выберете одну из моделей MVC. Просто создание API? Вам просто понадобится одна из фреймворков REST API.

выбор для ведения журнала, модульных тестов, стиля документации и т. д. не относится к узлу (хотя он относительно новый). Существует несколько фреймворков модульных тестов, фреймворков ведения журнала, стили/рамки документации и т. д. Это верно для Node, а также Java, C++ и других популярных языков. Разработчики этих фреймворков стараются сделать использование их программного обеспечения "легким" - в том, что вы не привязаны к нескольким зависимостям, можете поменять местами другие части, легко интегрировать его и так далее.

Если вы ищете решение "все-в-одном", я сомневаюсь, что вы его найдете. Поскольку у всех разные вкусы, есть несколько вариантов для каждой части решения, и вы можете выбрать части, которые работают для вас (и вашего клиента). то, что работает на этот раз, может быть не лучшим выбором в следующий раз.

Я бы предложил искать пример он-лайн, который приближается к тому, что вы пытаетесь сделать, а затем следовать их примеру или строить из их демо, используя те же модули.

Edit: после первой ссылки есть устаревший список фреймворков от Joyent здесь.

Edit2: данное из списка Joyent может быть полезным для вас. возможно, этот стиль модуля "Boilerplate" поможет вашему поиску.


вы можете проверить этот пост: https://solidgeargroup.com/clean-architecture-in-nodejs

где обсуждаются некоторые шаблоны для чистой архитектуры, такие как создание слоя адаптера для изоляции бизнес-логики от фреймворков, делают код более многоразовым и проверяемым..

примеры кода включены для соединения с API REST и GraphQL. А также для модульных тестов и подключения mongo db


проверьте это: https://github.com/neiesc/ListOfMinimalistFrameworks#web-framework-for-nodejs

Я использовал express и Koa, и они оба были очень хороши для архитектуры отдыха.

есть также Restify и куча других фреймворков, которые позволяют легко создавать чистый REST API.

большинство этих фреймворков тестирования, внедрения зависимостей, и многое другое. Я бы предложил попробовать Express.на JS потому что это лучший.