Я объясню, как я реорганизую свой код, чтобы он самодокументировался, очищался и обеспечивал соблюдение DRY (не повторяйтесь) при разработке маршрутов в express.js с использованием промежуточного программного обеспечения. Я не хочу утомлять вас ненужной информацией, поэтому сразу перейду к делу.

Давайте посмотрим на этот пример

Этот пример составлен и не используется в реальном приложении. Просто попытайтесь понять концепцию этого кода. В коде могут быть небольшие ошибки, но опять же, речь идет об идее, а не о самом коде.

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

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

Код после рефакторинга

Обычно я размещаю промежуточное ПО в разных файлах, но в данном примере это один и тот же.

Хорошая вещь в том, что когда вы смотрите на код конечной точки, вы можете ясно видеть, что происходит и в каком порядке (помните! Порядок имеет значение). Имя промежуточного программного обеспечения документирует требования к конечной точке и сообщает вам, что делает маршрут. Я обычно помещаю промежуточное ПО в файл sperate, чтобы файл маршрутизатора был более чистым и менее загруженным.

Теперь мы можем повторно использовать промежуточное ПО

Преимущество промежуточного программного обеспечения в том, что мы можем легко использовать его повторно. Допустим, я хочу создать еще одну конечную точку, в которой будут перечислены все члены группы текущей группы пользователя. Все, что мне нужно сделать, это следующее:

Почему вам следует использовать промежуточное ПО вместо функций

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

Спасибо за чтение, отзывы всегда приветствуются.