Этот код перенаправит все URL-адреса, заканчивающиеся на «/», на тот же URL-адрес, но без «/».Например, если пользователь перейдет на http://localhost:3000/about/,, он будет перенаправлен на http://localhost:3000/about.. Это позволит обеспечить правильную работу URL-адресов изображений и содержимого в файлах HTML.
var express = require('express');
var app = express();
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, тогда должны выполняться приведенные ниже коды.
Таким образом, если условие выполнено, переменная запроса срезает запрошенный URL-адрес на основе аргумента, который он получает в качестве фактической длины пути в соответствии с запросом, функция перенаправления принимает функцию среза в качестве функции обратного вызова.
Метод slice имеет два аргумента.Первый аргумент принимает первое значение индекса, а -1 принимает последнее значение индекса.Он также включает результат в переменную запроса.