Express - 如何修改请求然后重定向到另一条路线?
Express - How to modify request then redirect to another route?
我正在寻找一种方法来修改我的请求,然后再重定向到我的 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 然后客户端发出一个新的获取请求。所以有两个不同的请求。
但是我可以在查询中转换 url 的斜杠格式。
#users.coffee
router.get '/:id', (req, res) ->
res.redirect '/?user:'+req.params.id
我正在寻找一种方法来修改我的请求,然后再重定向到我的 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 然后客户端发出一个新的获取请求。所以有两个不同的请求。
但是我可以在查询中转换 url 的斜杠格式。
#users.coffee
router.get '/:id', (req, res) ->
res.redirect '/?user:'+req.params.id