當我打我的api時,我想將我的url從https://myapp.herokuapp.com/token/aaa.bbb.ccc
重定向到https://myapp.herokuapp.com/messages/:id
。我也想使我message
觀點使用Express重定向和渲染
代碼:
app.get('/token/:id' , (req, res) => {
var decoded = jwt.verify(req.params.id, 'blabla');
Message.findById(decoded.messageId, (err, message) => {
if (err) res.json({error: err})
res.render('message', {message})
})
})
在這裏,我成功地使我message
的看法,但對於下面的API的網址仍然是https://myapp.herokuapp.com/token/aaa.bbb.ccc
而不是https://myapp.herokuapp.com/messages/:id
的另一種嘗試:
app.get('/token/:id' , (req, res) => {
var decoded = jwt.verify(req.params.id, 'blabla');
Message.findById(decoded.messageId, (err, message) => {
if (err) res.json({error: err})
res.redirect('/messages/'+message._id)
})
})
現在,網址是https://myapp.herokuapp.com/messages/:id
,但message
視圖不呈現。呈現JSON將顯示消息
如何重定向到https://myapp.herokuapp.com/messages/:id
並呈現message
視圖?
通過直接的瀏覽器請求或通過XHR(「AJAX」)請求獲得'/ token /:id'是否被請求? – robertklep
字面上只是從一個鏈接'click the link' – user2456977
謝謝,我不知道我的答案是否會起作用(它不會在通過XHR請求時)。當被請求作爲一個普通的瀏覽器請求時,'res.json({error:err})'有點奇怪,但是,聽起來你想在那裏渲染一個錯誤頁面。 – robertklep