Маршрутизатор, созданный во втором кодовом блоке с const router = express.Router();
, никогда не подключается ни к чему.Его необходимо подключить к экспресс-экземпляру, который подключен к http-серверу.
Сам по себе простой вызов router.use(...)
ни к чему не приводит.Этот маршрутизатор должен быть подключен к экземпляру Express, который сам подключен к http-серверу, который был запущен для входящих запросов http для отправки на маршрутизатор.
Кроме того, кажется, что вытакже пытается создать маршрут для /login/login
, а не просто /login
.Когда вы делаете это:
router.use('/login', loginRouter);
Это говорит о том, что любые запросы отправляются на router
, отфильтровывайте запрос так, чтобы только запросы, начинающиеся с /login
, отправлялись на loginRouter
.Затем внутри loginRouter
у вас есть это:
router.route('/login').post(...)
, который говорит, что для запросов, которые пришли к router
(что на самом деле loginRouter
из предыдущего кода), ищите дополнительный путь/login
на то, что уже было сопоставлено.Это означает, что вы будете искать /login/login
, что, вероятно, не то, что вы публикуете.
К вашему сведению, ваш код намного сложнее следовать, когда вы используете разные символические имена для одного и того же маршрутизаторав разных файлах.Если вы собираетесь использовать loginRouter
в одном месте, то для этого конкретного маршрутизатора используйте одно и то же имя во всех ваших файлах.Ваш код будет намного менее запутанным и намного менее вероятно, что кто-то допустит ошибку.Вы называете это loginRouter
в одном месте и router
в другом.И тогда у вас есть другие маршрутизаторы, которые вы также называете router
.Очень запутанно.