Понимание разницы между express() и express.Router() в Express.js

В среде Express.js express()и express.Router()— это две разные функции, используемые для маршрутизации и создания модульных маршрутов. Вот разница между ними:

  1. express():

    • Функция express()— это функция верхнего уровня в среде Express.js. При вызове он создает приложение Express.
    • Он предоставляет набор методов и свойств для обработки HTTP-запросов, таких как get(), post(), put(), delete()и т. д.
    • Вы можете определить маршруты и промежуточное программное обеспечение непосредственно в объекте приложения, созданном с помощью express().
    • Его можно использовать для создания автономного приложения или для добавления промежуточного программного обеспечения и маршрутов к существующему приложению Node.js.
  2. express.Router():

    • Функция express.Router()создает новый объект маршрутизатора. Объект маршрутизатора похож на мини-приложение Express, которое можно использовать для обработки маршрутов.
    • Он позволяет создавать модульные маршруты, которые можно подключить к определенному пути в вашем приложении.
    • Вы можете определить маршруты и промежуточное программное обеспечение для объекта маршрутизатора, аналогично объекту приложения, созданному с помощью express().
    • После того как маршрутизатор определен, вы можете подключить его к основному приложению с помощью app.use()для обработки запросов на определенный маршрут или префикс URL-адреса.

Использование express.Router()полезно, когда вы хотите организовать маршруты в отдельные модули или когда вы хотите повторно использовать набор маршрутов в нескольких приложениях.

Вот некоторые распространенные методы, используемые как с express(), так и с express.Router():

  • get(path, callback): обрабатывает HTTP-запросы GET.
  • post(path, callback): обрабатывает запросы HTTP POST.
  • put(путь, обратный вызов): обрабатывает запросы HTTP PUT.
  • delete(path, callback): обрабатывает HTTP-запросы DELETE.
  • use(path, callback): определяет функции промежуточного программного обеспечения, которые должны выполняться для определенного пути или для всех путей.
  • param(name, callback): добавляет функции обратного вызова, которые будут выполняться при наличии определенного параметра маршрута.
  • all(path, callback): обрабатывает все методы HTTP для определенного пути.