我是 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": {
}
}
让我分解一下我遇到的问题:
我无法将此作为放置请求发送到我的数据库。显然这是无效的 JSON。我不是 JSON 专家,这非常令人沮丧。有什么想法吗?
由于我在 put 请求中遇到的问题,我决定使用 Futon 添加我的设计文档。我的数据库似乎与我在这里的视图很好,但是当我尝试将文档添加到数据库时,我收到一条错误消息,指出我的 validate_doc_update 文本没有评估为函数。关于我的验证功能有什么问题的任何建议?
由于我的验证功能遇到困难,我尝试在设计文档中放置一个愚蠢的版本:
"validate_doc_update": "function(newDoc, oldDoc, userCtx) { if (newDoc.type == "fortune") {} };",
我可以使用这个版本创建文档,但它没有多大用处。
任何帮助,将不胜感激。
谢谢,
保罗尼科尔斯