1

我是 CouchDB 的新手,让我的设计文档在我的数据库中工作时遇到了很多麻烦。

这是我的设计文档:

{
"language": "javascript",

"validate_doc_update": "function(newDoc, oldDoc, userCtx) {
    function require(field, message) {
        message = message || "Document must have a " + field;
        if (!newDoc[field]) throw({forbidden : message});
    };
    function unchanged(field) {
        if (oldDoc && toJSON(oldDoc[field] != toJSON(newDoc[field])) {
        }
    };

    if (newDoc.type == "fortune") {
        require("body");
        require("sequence_id");
        require("created_at");
        unchanged("sequence_id");
        unchanged("created_at");
    }
};",

"views": { 
    "fortune_count": {
        "map": "function(doc) { if(doc.sequence_id && doc.body) { emit(doc.sequence_id, doc.body); }",
        "reduce": "_count"
        }
},

"shows": {
}
}

让我分解一下我遇到的问题:

  1. 我无法将此作为放置请求发送到我的数据库。显然这是无效的 JSON。我不是 JSON 专家,这非常令人沮丧。有什么想法吗?

  2. 由于我在 put 请求中遇到的问题,我决定使用 Futon 添加我的设计文档。我的数据库似乎与我在这里的视图很好,但是当我尝试将文档添加到数据库时,我收到一条错误消息,指出我的 validate_doc_update 文本没有评估为函数。关于我的验证功能有什么问题的任何建议?

由于我的验证功能遇到困难,我尝试在设计文档中放置一个愚蠢的版本:

"validate_doc_update": "function(newDoc, oldDoc, userCtx) { if (newDoc.type == "fortune") {} };",

我可以使用这个版本创建文档,但它没有多大用处。

任何帮助,将不胜感激。

谢谢,

保罗尼科尔斯

4

1 回答 1

0

您刚刚忘记关闭括号(oldDoc && toJSON(oldDoc[field] != toJSON(newDoc[field]))

于 2013-01-12T09:20:44.887 回答