Comment puis-je envoyer un statut de réussite au navigateur à partir de nodejs / express?

J’ai écrit le morceau de code suivant dans mon serveur nodeJS / Expressjs:

app.post('/settings', function(req, res){ var myData = { a: req.param('a') ,b: req.param('b') ,c: req.param('c') ,d: req.param('d') } var outputFilename = 'config.json'; fs.writeFile(outputFilename, JSON.ssortingngify(myData, null, 4), function(err) { if(err) { console.log(err); } else { console.log("Config file as been overwriten"); } }); 

})

Cela me permet d’obtenir les données de formulaire soumises et de les écrire dans un fichier JSON.

Cela fonctionne parfaitement. Mais le client rest dans une sorte d’état d’affichage et finit par expirer. J’ai donc besoin d’envoyer une sorte d’état de réussite ou d’en-tête de succès au client.

Comment devrais-je faire ça?

Merci d’avance!

Express Update 2015:

Utilisez ceci à la place:

 res.sendStatus(200) 

Ceci a été déconseillé:

 res.send(200) 

Je voulais juste append que vous pouvez envoyer json via l’aide res.json() .

 res.json({ok:true}); // status 200 is default 

 res.json(500, {error:"internal server error"}); // status 500 

Mise à jour 2015:

res.json(status, obj) a été déconseillé en faveur de res.status(status).json(obj)

 res.status(500).json({error: "Internal server error"}); 

Jup, vous devez envoyer une réponse, le plus simple serait

 res.send(200); 

Dans le gestionnaire de rappel de writeFile .

Le 200 est un code d’état HTTP, vous pouvez donc le modifier en cas d’échec:

 if (err) { res.send(500); } else { res.send(200); } 

En express 4 vous devriez faire:

 res.status(200).json({status:"ok"}) 

au lieu de la déconseillée:

 res.json(200,{status:"ok"})