【发布时间】:2017-10-07 05:54:21
【问题描述】:
当我点击我的 api 时,我想将我的网址从 https://myapp.herokuapp.com/token/aaa.bbb.ccc 重定向到 https://myapp.herokuapp.com/messages/:id。我也想渲染我的message 视图
代码:
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 的 URL 仍然是 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)
})
})
现在,URL 是 https://myapp.herokuapp.com/messages/:id,但 message 视图未呈现。呈现显示消息的 JSON
如何重定向到 https://myapp.herokuapp.com/messages/:id 并呈现 message 视图?
【问题讨论】:
-
/token/:id是通过直接浏览器请求还是通过 XHR(“AJAX”)请求获得请求? -
实际上只是来自链接
<a target="_blank" href="https://myapi.com/token/theID">click the link</a> -
谢谢,我不确定我的答案是否有效(当通过 XHR 请求时它不会有效)。
res.json({ error : err })在作为常规浏览器请求被请求时有点奇怪,不过,听起来你想在那里呈现一个错误页面。
标签: node.js mongodb express ejs