我正在寻找一种方法来修改我的请求,然后重定向到我的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
使用第一种方法,没有重定向,第二种方法是不渲染页面。
答案 0 :(得分:1)
我想实现的目标可能是不可能的。客户端请求发送的url无法修改。我只能发送状态302和重定向网址,然后客户端发出新的获取请求。所以有两个不同的要求 但是我可以在查询中转换url的斜杠格式。
#users.coffee
router.get '/:id', (req, res) ->
res.redirect '/?user:'+req.params.id