我是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": {
}
}
让我打破我遇到的问题:
我将此作为put请求发送到我的数据库时遇到问题。 显然这是无效的JSON。我不是JSON的专家,而且 这非常令人沮丧。有什么想法吗?
由于我对put请求的问题,我决定 使用Futon添加我的设计文档。我的数据库似乎没问题 与我在这里的视图,但当我尝试添加文件 数据库,我得到一个错误,说我的validate_doc_update文本 不评估函数。关于我的错误的任何建议 验证功能?
由于我在验证功能方面遇到困难,我尝试在设计文档中添加一个愚蠢的版本:
"validate_doc_update": "function(newDoc, oldDoc, userCtx) { if (newDoc.type == "fortune") {} };",
我可以使用此版本创建文档,但它没有多大用处。
任何帮助都将不胜感激。
谢谢,
保罗尼科尔斯答案 0 :(得分:0)
您只是忘了在(oldDoc && toJSON(oldDoc[field] != toJSON(newDoc[field]))