要求に名前を付けてファイルに書き込むと、GET
はすべての名前を返し、DELETE
は名前ファイルを削除します。私の問題はDELETE
メソッドにあります。名前ファイルが削除されたことを示すために205を送信すると、JSONが応答に含まれていますが、削除するファイルが存在しないことを示す204を送信すると、応答は空に戻ります。NodeJS Express:応答にjsonが含まれていません
はここで動作を定義する方法です。
function clearNames(req, res) {
fs.unlink('names.txt', function(err){
if (err) {
res.status(204).json({'success': true});
} else {
res.status(205).json({'success': true});
}
});
}
、ここでの結果です。最初の要求は、名前ファイルが存在するときに送信され、ファイルを削除します。ファイルが削除された後に、第2が送信されますので、何のファイルが削除するように存在しません:エラーの場合には
$ curl -X DELETE -w ' %{http_code}' http://localhost:18080/api/names
{"success":true} 205
$ curl -X DELETE -w ' %{http_code}' http://localhost:18080/api/names
204
$
あなたは '204 No content'の代わりに' 404 Not found'レスポンスステータスコードを使うべきです。これに加えて、なぜあなたは両方のケースで同じであるjsonが必要ですか?応答ステータスコードは、要求の結果を決定するのに十分です。 – alexmac