2016-12-29 23 views
1

私はのCouchDBに作成できる検証(validate_doc_update)については読んだことがありますが、私はそれらをどのように作成できるのか分かりませんでした。 Fauxtonまでやってもいいですか?CouchDB 2で「文書の検証を検証する」方法は?

Databases -> "mydb" -> Design Documents -> New Doc 

これは方法ですか?関数を文字列として宣言する必要がありますか?私は例が必要です(ドキュメントにはステップバイステップがあります)。

ありがとうございました。

答えて

2

私はこれを理解しました。

Fauxton

移動に至るまで:ここで、ステップバイステップでデータベース - > [すべてのドキュメントを - - > [ここにあなたのデータベース名を選択]> [新規ドキュメントは、その後、テキストを埋めます下記のJSONの定型を使用して、ご希望の検証とエリアをクリックし保存

{ 
    "_id": "_design/my_validation_name", 
    "validate_doc_update": "function(newDoc, oldDoc, userCtx) {throw({forbidden : 'not able now!'});}" 
} 

カール

を通じ
curl -X PUT http://127.0.0.1:5984/my_database/_design/my_validation_name -d '{"validate_doc_update": "function(newDoc, oldDoc, userCtx) { throw({forbidden: \"not able now!\" });}"}' 
重要

たDocIDは「_design /」で始まる必要があり、機能のキーは「validate_doc_update」でなければなりません。関数を文字列として書き留めます。検証セットした後

、我々はあなたがエラーを参照しなければならない文書を作成しようとした場合、「今ではないことは!」..

curl -X PUT http://127.0.0.1:5984/my_database/foo -d '{"foo" : "bar"}' 
# {"error":"forbidden","reason":"not able now!"} 
2

が手動で設計文書を書くことはオプションで、あなたは単にそれを書く必要がありますJSONは関数を値として記述することをサポートしていないため、文字列として出力することはできません。 (あなたが発見したように)

しかし、他のツールを使用して設計文書を管理することを強く推奨します。特に、CLIツールcouchapp、および関連するクローン(例:erica)を使用すると、ファイルシステムを使用して設計ドキュメントを表すことができます。 (ビュー関数、検証関数などを含む)

fauxton/futonエディタ(非常に素早く不器用な関数を扱う場合)を使用する代わりに、検証関数を使用して平文.jsを書くことができます。それは自動的にフォーマットされ、CouchDBにアップロードされます。 (同じことがビュー、ショー/リストなどにも適用されます)

この方法を使用すると、保守がずっと簡単で安全になります。

関連する問題