Wenn ich meine API treffe, möchte ich meine URL von https://myapp.herokuapp.com/token/aaa.bbb.ccc
auf https://myapp.herokuapp.com/messages/:id
umleiten. Ich möchte auch meine message
AnsichtUmleiten und Rendern mit Express
-Code machen:
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})
})
})
Hier habe ich meine erfolgreich message
Ansicht machen, aber die URL für die unter api ist noch https://myapp.herokuapp.com/token/aaa.bbb.ccc
und nicht https://myapp.herokuapp.com/messages/:id
Ein weiterer Versuch:
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)
})
})
Jetzt ist die URL https://myapp.herokuapp.com/messages/:id
, aber die message
Ansicht wird nicht gerendert. Es wird ein JSON gerendert, der die folgende Meldung anzeigt:
Wie kann ich auf https://myapp.herokuapp.com/messages/:id
umleiten und auch die message
Ansicht rendern?
Wird '/ token /: id' durch eine direkte Browser-Anfrage oder durch eine XHR (" AJAX ") Anfrage angefordert? – robertklep
Wörtlich nur von einem Link "click the link' – user2456977
Danke, ich war mir nicht sicher, ob meine Antwort funktionieren würde (es wird nicht, wenn es über XHR angefordert wird). Die 'res.json ({error: err})' ist etwas komisch, wenn sie als normale Browser-Anfrage angefordert wird, klingt aber so, als würde man dort eine Fehlerseite rendern wollen. – robertklep