Как сделать чистую архитектуру для 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 потому что это лучший.