Express - 如何修改请求然后重定向到另一个路由?

时间:2015-01-21 15:22:04

标签: node.js redirect express request middleware

我正在寻找一种方法来修改我的请求,然后重定向到我的express.js应用中的另一条路线。

我尝试了两种方法来做到这一点:
1)

 #users.coffee
 router.use '/:id', (req, res, next) ->
   req.currentUser = req.params.id
   req.url = '/'
   next()

 #app.coffee
 app.use '/users', require('./routes/users')
 app.get '/', (req, res) ->
   locals = {}
   if req.currentUser
     locals.currentUser = req.currentUser
   res.render 'index', locals

2)

 #users.coffee
 router.use '/:id', (req, res, next) ->
   req.currentUser = req.params.id
   res.redirect '/'

 #app.coffee
 app.use '/users', require('./routes/users')
 app.get '/', (req, res) ->
   locals = {}
   if req.currentUser
     locals.currentUser = req.currentUser
   res.render 'index', locals

使用第一种方法,没有重定向,第二种方法是不渲染页面。

1 个答案:

答案 0 :(得分:1)

我想实现的目标可能是不可能的。客户端请求发送的url无法修改。我只能发送状态302和重定向网址,然后客户端发出新的获取请求。所以有两个不同的要求 但是我可以在查询中转换url的斜杠格式。

#users.coffee
 router.get '/:id', (req, res) ->
   res.redirect '/?user:'+req.params.id