J'utilise res.send
et quoi qu'il en soit, il renvoie un état de 200. Je veux définir ce statut sur différents nombres pour différentes réponses (erreur, etc.)
Ceci utilise express
res.writeHead(200, {'Content-Type': 'text/event-stream'});
http://nodejs.org/docs/v0.4.12/api/http.html#response.writeHead
Pour ajouter des en-têtes de réponse avant l'envoi , vous pouvez utiliser la méthode setHeader:
response.setHeader('Content-Type', 'application/json')
Le statut uniquement par la méthode status:
response.status(status_code)
Les deux en même temps avec la méthode writeHead:
response.writeHead(200, {'Content-Type': 'application/json'});
Je suppose que vous utilisez une bibliothèque comme "Express", car nodejs ne fournit pas ares.send
méthode.
Comme dans le Guide express , vous pouvez passer un deuxième argument facultatif pour envoyer l'état de la réponse, tel que:
// Express 3.x
res.send( "Not found", 404 );
// Express 4.x
res.status(404).send("Not found");
Puisque la question mentionne également Express, vous pouvez également le faire de cette façon en utilisant un middleware.
app.use(function(req, res, next) {
res.setHeader('Content-Type', 'text/event-stream');
next();
});
Vous devez utiliser la méthode setHeader et la méthode status pour votre usage.
SOLUTION:
app.post('/login', function(req, res) {
// ...Check login credentials with DB here...
if(!err) {
var data = {
success: true,
message: "Login success"
};
// Adds header
res.setHeader('custom_header_name', 'abcde');
// responds with status code 200 and data
res.status(200).json(data);
}
});
Dans la documentation de express (4.x), res.sendStatus est utilisé pour envoyer des définitions de code d'état. Comme il est mentionné ici chacun a une description spécifique.
res.sendStatus(200); // equivalent to res.status(200).send('OK')
res.sendStatus(403); // equivalent to res.status(403).send('Forbidden')
res.sendStatus(404); // equivalent to res.status(404).send('Not Found')
res.sendStatus(500); // equivalent to res.status(500).send('Internal Server Error')
j'utilise ceci avec express
res.status(status_code).send(response_body);
et cela sans express (serveur http normal)
res.writeHead(404, {
"Content-Type": "text/plain"
});
res.write("404 Not Found\n");
res.end();
set statusCode var avant l'appel send ()
res.statusCode = 404;
res.send();