Перепишите URL-адрес, используя node.js

Можно ли переписать URL-адрес с помощью node.js? (я также использую Express 3.0)

Я пробовал что-то вроде этого:

req.url = 'foo';

Но url продолжает то же самое

Ответ 1

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

app.use(function(req, res, next) {
  if (req.url.slice(-1) === '/') {
    req.url = req.url.slice(0, -1);
  }
  next();
});

Эта функция удаляет конечную косую черту со всех URL-адресов входящих запросов. Обратите внимание, что для того, чтобы это сработало, вам нужно поместить его перед вызовом app.use(app.router).

Ответ 2

Хорошей идеей должно быть также обновить path. Мои методические рекомендации:

app.use(function(req, res, next) {
    console.log("request", req.originalUrl);
    const removeOnRoutes = '/not-wanted-route-part';
    req.originalUrl = req.originalUrl.replace(removeOnRoutes,'');
    req.path = req.path.replace(removeOnRoutes,'');
    return next();
});

Таким образом, /not-wanted-route-part/users станет /users