我正在寻找一种方法来修改我的请求,然后再重定向到我的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
使用第一种方法时,不会发生重定向,使用第二种方法时,不会呈现页面。
最佳答案
我想要实现的目标可能是不可能的。客户端请求发送的url无法修改。我只能发送状态 302 和重定向 url,然后客户端发出新的 get 请求。所以有两个不同的请求。
不过我可以在查询中改变url的斜杠格式。
#users.coffee
router.get '/:id', (req, res) ->
res.redirect '/?user:'+req.params.id
关于node.js - Express - 如何修改请求然后重定向到另一条路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28070705/