Создавал ли роутер в Express.js?

«Создавал ли роутер в Express.js?» — вопрос из категории Express, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, постоянно. В Express.js роутеры — это основной способ организации маршрутов в модульной структуре. Я создаю отдельные файлы-роутеры для разных сущностей (например, usersRouter.js, productsRouter.js).

Пример модульного роутера для API пользователей:

routes/usersRouter.js

const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');

// Применяем middleware ко всем маршрутам этого роутера
router.use(authMiddleware);

// GET /api/users
router.get('/', userController.getAllUsers);
// GET /api/users/:id
router.get('/:id', userController.getUserById);
// POST /api/users
router.post('/', userController.createUser);
// PUT /api/users/:id
router.put('/:id', userController.updateUser);

module.exports = router;

Подключение в основном файле приложения (app.js):

const express = require('express');
const usersRouter = require('./routes/usersRouter');

const app = express();
app.use(express.json());

// Все маршруты из usersRouter будут начинаться с /api/users
app.use('/api/users', usersRouter);

Преимущества такого подхода:

  • Чистота кода: Логика маршрутов отделена от основной конфигурации приложения.
  • Масштабируемость: Легко добавлять новые группы маршрутов.
  • Гибкость: К конкретному роутеру можно применять специфичные middleware (например, проверку прав для админ-роутера).