Задать вопрос

Почему не работает роутинг в Express.js через Router?

Не могу заставить работать приложение через объект Router в Express.

Структура приложения следующая (то, что имеет отношение к проблеме):
index.js
fn.js
/routes/getSettings.js

index.js

const express = require('express');
const getSettingsRouter = require('./routes/getSettings');
const app = express();

app.use('/getSettings', getSettingsRouter);

getSettings.js

const express = require('express');
const router = express.Router();
const fn = require('../fn.js');

router.get('/getSettings', async (req, res) => {
    let response = await fn.getSettings();
    res.type('json');
    res.send(response);
});

module.exports = router;

В результате по пути /getSettings выдается 404. Если же засунуть код роутинга в index.js (соответственно заменив router.get на app.get), все работает корректно. Подозреваю, что проблема или в путях, или в экспорте-импорте, но самостоятельно заставить работать как положено не могу.
  • Вопрос задан
  • 1169 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 3
marginBottom
@marginBottom
Исправить
app.use('/getSettings', getSettingsRouter);
на
app.use('/', getSettingsRouter);
Ответ написан
Комментировать
hzzzzl
@hzzzzl
Тут ты сделал роут /getSettings/getSettings
Ответ написан
Комментировать
monochromer
@monochromer
DIVeloper
Мне кажется, правильнее заменить в файле /routes/getSettings.js это
router.get('/getSettings',  async (req, res) => { /*...*/ })

на это
router.get('/', async (req, res) => { /*...*/ })
Ответ написан
Ваш ответ на вопрос

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

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