EreminD
@EreminD
Кое-что умею

Как правильно написать промежуточный обработчик?

Добрый день. Смотрю вот сюда и делаю, как сказано, но что-то не так
Идея в том, что есть два маршрута [get] /:id и [get] /new/*
Нужно написать промежуточный обработчик, чтобы для обоих маршрутов логировался запрос
Пока пришел в к такому коду:
app.use(function (req, res, next) {
  console.log(new Date().toLocaleString('ru', options));
  console.log(req.originalUrl);
  console.log(req.params);
  console.log(JSON.stringify(req.body) || '-nobody');
  console.log('--------------------------------------');
  next();
});

app.get('/new/*', function(req, res){  
       console.log('1');
}) 

app.get('/:id', function(req, res){
    var id = req.params.id;
    if(id in list){
        console.log(list[id]);
        if (list[id].match('http')) { res.redirect(301, list[id]) }
        else                        { res.redirect(301, 'http://'+list[id]) }
    }
    else{
        res.status(404).send('no such element');
    }
})


Проблема:
Логируются запросы, для маршрута app.get('/new/*')
И логируются для app.get('/:id'), но только если логика в обработчике доходит до res.status(404).send('no such element');
А если условие выполняется и я шлю редирект, запрос не логируется
Что я делаю не так?
  • Вопрос задан
  • 342 просмотра
Пригласить эксперта
Ответы на вопрос 2
@rustler2000
погромист сикраш
app.use('/',function (req, res, next) { -> app.use(function (req, res, next) {
Ответ написан
@Coder321
middleware работают по порядку, вы уверены что те роуты куда вы редиректите находятся после логера?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы