0

特定のコンテンツが CouchDB データベースのドキュメントに存在することを確認する方法を見つけようとしています。これを行う最善の方法は、「validate_doc_update」設計ドキュメントを使用することだと思いました。過去に、ユーザーがデータベースに変更を加える権限があるかどうかを確認するものを作成したので、この追加コードをそこに含めようとしました。ただし、CouchDB ではコンパイル可能なコードとして認識されず、その理由がわかりません (以下のコードを参照)。このコードをコンパイルしないようにするためにどこを台無しにしたか、または特定のフィールドが更新されたドキュメントに含まれるようにするためのより良い方法があるかどうか、誰かが知っていますか?

これは、「_design/BGdesign」と呼ばれる同じデータベース内のデザイン ドキュメントに含まれています。

function(newDoc, oldDoc, userCtx, secObj){
if ('_admin' in userCtx.roles) return; // skip anonymous in Admin Party case
if (userCtx.roles.indexOf('testAdmin') == -1) {
    throw({forbidden: "Not Authorized"});
    }
}
if (newDoc.artistName === undefined) {
    throw({forbidden: 'Document must have a artistName'});
}
if (newDoc.currentLocation === undefined) {
    throw({forbidden: 'Document must have a currentLocation'});
}
if (newDoc.dateMade === undefined) {
    throw({forbidden: 'Document must have a dateMade.'});
}
if (newDoc.description === undefined) {
    throw({forbidden: 'Document must have a description.'});
}
if (newDoc.name === undefined) {
    throw({forbidden: 'Document must have a name.'});
}
if (newDoc.owner === undefined) {
    throw({forbidden: 'Document must have an owner.'});
}
if (newDoc.tags === undefined) {
    throw({forbidden: 'Document must have tags.'});
}
if (newDoc.uploaded === undefined) {
    throw({forbidden: 'Document must have an uploaded date.'});
}

}

4

1 に答える 1

0

中括弧の不一致が問題の原因でした。私がやろうとしていることを実行するためのより効率的/「適切な」方法がある場合 (私がやろうとしているように if ステートメントを単一の IF ステートメントに圧縮する以外に)、情報をいただければ幸いです。

于 2016-02-16T10:40:24.647 に答える