@AndrewRusinas

Как разбить Express Router на модули?

Хочу разбить роуты на модули и собирать их в одном файле. Вот, чего я хочу добиться:
index.js
// ...
const routes = require('./routes')
app.use('/', routes)
// ...


blogRoutes.js (или любой другой модуль)
const router = require('express').Router()
const BlogController = require('./BlogController')

router.get('/', BlogController.All)
// ... другие роуты

module.exports = router


routes.js
// Вот здесь хочется собрать все модули и экспортировать


В документации не увидел, как правильно это сделать.
Возникает вопрос в том, как правильно делать экспорт из модулей, как их правильно импортировать и снова экспортировать так, чтобы routes.js оставался middleware (иначе ведь app.use() выдаст ошибку).

И бонус-квестчен: импортируя во всех модулях BlogController целиком, не возникнет ли излишней нагрузки? Логичнее импортировать только нужные методы, но это немного снизит удобство и чистоту кода. Стоит ли это оптимизации, или она будет незначительна?
  • Вопрос задан
  • 679 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
routes.js

const routes = require('express').Router()

routes.use('/blog', require('./BlogController'))
routes.use('/api', require('./ApiController'))

module.exports = routes
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы