Ich möchte einen 404-Fehler auf meinem Express / Node-Server simulieren. Wie kann ich das machen?
javascript
node.js
express
Zufälliges Blau
quelle
quelle
Antworten:
Heutzutage gibt es dafür eine spezielle
status
Funktion für das Antwortobjekt. Verketten Sie es einfach irgendwo, bevor Sie anrufensend
.quelle
res.status(404).render('error404')
res.status(404);
AFAIK alleine keine Antwort sendet. Es muss entweder mit etwas, zum Beispiel verkettet werdenres.status(404).end();
oder Ihr zweites Beispiel, oder muss sie von zB befolgt werdenres.end();
,res.send('Not found');
res.sendStatus(404)
Aktualisierte Antwort für Express 4.x.
Anstatt
res.send(404)
wie in alten Express-Versionen zu verwenden, lautet die neue Methode:Express sendet eine sehr einfache 404-Antwort mit dem Text "Nicht gefunden":
quelle
res.status(404)
nicht so istres.sendStatus(404)
.res.sendStatus(404)
ist richtig. Es ist gleichbedeutend mitres.status(404).send()
res.sendStatus(404);
ist gleichbedeutend mitres.status(404).send('Not Found')
Sie müssen es nicht simulieren. Das zweite Argument ist
res.send
meines Erachtens der Statuscode. Übergeben Sie einfach 404 an dieses Argument.Lassen Sie mich Folgendes klarstellen: Gemäß der Dokumentation auf expressjs.org scheint es, als würde jede an übergebene Nummer
res.send()
als Statuscode interpretiert. Technisch gesehen könnte man also davonkommen mit:Edit: Mein schlechtes, meinte ich
res
stattreq
. Es sollte auf die Antwort aufgerufen werdenBearbeiten: Ab Express 4 ist die
send(status)
Methode veraltet. Wenn Sie Express 4 oder höher verwenden, verwenden Sieres.sendStatus(404)
stattdessen : . (Danke @badcc für den Tipp in den Kommentaren)quelle
res.send(404, "Could not find ID "+id)
.status(404).send('Not found')
Laut der Website, die ich unten veröffentlichen werde, ist es alles, wie Sie Ihren Server einrichten. Ein Beispiel, das sie zeigen, ist folgendes:
und ihre Routenfunktion:
Dies ist eine Möglichkeit. http://www.nodebeginner.org/
Von einer anderen Site aus erstellen sie eine Seite und laden sie dann. Dies könnte mehr von dem sein, wonach Sie suchen.
http://blog.poweredbyalt.net/?p=81
quelle
Definieren Sie auf der Express-Site eine NotFound-Ausnahme und lösen Sie sie aus, wenn Sie eine 404-Seite haben möchten, ODER leiten Sie im folgenden Fall zu / 404 um:
quelle
app.use(function(err, res, res, next) { if (err.message.indexOf('NotFound') !== -1) { res.status(400).send('Not found dude'); }; /* else .. etc */ });
IMO ist der schönste Weg, die
next()
Funktion zu verwenden:Dann wird der Fehler von Ihrem Fehlerbehandler behandelt und Sie können den Fehler mithilfe von HTML gut formatieren.
quelle