Что и как делает каждая строка кода для перенаправления URL без обратной косой черты в expressjs? - PullRequest
0 голосов
/ 26 сентября 2018

Я знаю, что приведенный ниже код перенаправляет URL, который заканчивается на "/", на тот же URL, но без "/".

Насколько мне известно, я пытаюсь углубиться в подробности о том, что делает приведенный ниже код и как он работает.

Может кто-нибудь объяснить, пожалуйста, каждыйСтрока кода на простом английском языке, так как я начинаю программировать.

Я спрашивал об этом моего лектора и моих преподавателей, но не мог понять в деталях.

app.use(function (req, res, next) {
  if (req.path.substr(-1) == '/' && req.path.length > 1) {
        var query = req.url.slice(req.path.length);
        res.redirect(301, req.path.slice(0, -1) + query);
    } else {
        next();
    }
});

1 Ответ

0 голосов
/ 26 сентября 2018

Первая строка объявляет функцию в выражении.Вторая строка проверяет, что URL, предоставленный в качестве аргумента (req.path), содержит '/' в качестве последнего элемента и имеет длину, превышающую 1. Другими словами, он проверяет, что URL имеет /, ноне просто /.Третья строка устанавливает переменную запроса равной другому аргументу, переданному как req.url, разрезанному по длине req.path.Другими словами, если бы req.path был / someurl /, а req.url был «аутентифицирован», запрос был бы установлен в «authenti». Четвертая строка перенаправляет на URL, состоящий из req.path без /, плюс запрос.Итак, в последнем примере он будет перенаправлен в / someurl? Authenti.Он также устанавливает код состояния 301, указывающий, что произошло перенаправление.Последняя строка добавляет условие else в случае, если проверка в строке 2 завершилась неудачно, поэтому в этом случае она просто пропускает выполнение всей функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...