2

次のようにビューをクエリします。

/db/_design/myviewname/_view/foo?key=%22ABC123%22

結果は次のとおりです。

{
 total_rows: 3,
 offset: 3,
 rows: [ ]
}

すべて良い。

ドキュメントが見つからなかったので、ショーまたはリストから 404 をスローしたいと思います。

それは可能ですか?

4

2 に答える 2

3

wikiによると、Show/List 関数を介してリダイレクト応答を発行できます。そのため、任意の HTTP ステータス コードを送信することもできます。(404のように)

function (head, req) {
    start({ code: 404 });
}
于 2012-08-07T17:37:21.807 に答える
0

ここで404が正しい選択かどうかはわかりません。それは実際にはnot foundを意味します。

W3 HTTP/1.1 rfc2616 から:

10.4.5 404が見つかりません

サーバーは Request-URI に一致するものを見つけられませんでした。状態が一時的なものか永続的なものかは示されていません。410 (Gone) ステータス コードは、古いリソースが永続的に利用できず、転送アドレスがないことを内部的に構成可能なメカニズムを通じてサーバーが認識している場合に使用する必要があります。このステータス コードは、サーバーが要求が拒否された理由を正確に明らかにしたくない場合、または他の応答が適用できない場合に一般的に使用されます。

私が思う別のより適切な応答ステータスコードがあります。204 No Contentあなたが本当にクライアントに伝えたいことのように聞こえます。

10.2.5 204 コンテンツなし

サーバーは要求を満たしましたが、エンティティ本体を返す必要はなく、更新されたメタ情報を返したい場合があります。レスポンスには、新しいメタ情報または更新されたメタ情報がエンティティ ヘッダーの形式で含まれる場合があります。エンティティ ヘッダーが存在する場合は、リクエストされたバリアントに関連付ける必要があります。

クライアントがユーザー エージェントである場合、リクエストが送信された原因となったドキュメント ビューを変更すべきではありません (SHOULD NOT)。この応答は主に、ユーザー エージェントのアクティブなドキュメント ビューを変更せずにアクションの入力を許可することを目的としていますが、現在ユーザー エージェントのアクティブなビューにあるドキュメントには、新しいメタ情報または更新されたメタ情報を適用する必要があります。

204 応答にはメッセージ本文を含めてはならない (MUST NOT) ため、常にヘッダー フィールドの後の最初の空行で終了します。

カスタム応答ヘッダーを設定するには、次のように、start 関数に渡されるオブジェクトで指定するだけです。

function(head, req) {
  return { "code": 204 };
}
于 2012-08-07T17:44:08.530 に答える