1. ホーム
  2. node.js

[解決済み] node / express でカスタム http ステータスメッセージを送信するには?

2022-12-15 09:04:32

質問

私のnode.jsアプリは、以下のようなモデルになっています。 express/examples/mvc アプリのようにモデル化されています。

コントローラアクションで、HTTP 400ステータスをカスタムhttpメッセージで吐き出したいと思います。 デフォルトでは、HTTPステータスメッセージは"Bad Request"です。

HTTP/1.1 400 Bad Request

しかし、私は

HTTP/1.1 400 Current password does not match

様々な方法を試しましたが、どれもhttpの状態メッセージを私のカスタムメッセージに設定しませんでした。

私の現在のソリューションコントローラ関数は以下のようなものです。

exports.check = function( req, res) {
  if( req.param( 'val')!=='testme') {
    res.writeHead( 400, 'Current password does not match', {'content-type' : 'text/plain'});
    res.end( 'Current value does not match');

    return;
  } 
  // ...
}

すべてうまくいくのですが......正しい方法ではないようです。

expressを使用してhttpのステータスメッセージを設定する良い方法はありますか?

どのように解決するのですか?

次のことを確認してください。 res.send(400, 'Current password does not match') 見る エクスプレス3.xのドキュメント を見てください。

Expressjs 4.x用にUPDATEしました。

このように使う(見て エクスプレス 4.x ドキュメント ):

res.status(400).send('Current password does not match');
// or
res.status(400);
res.send('Current password does not match');