Couchdb 是否可以使用验证文档更新功能禁止更新设计文档?

Couchdb 是否可以使用验证文档更新功能禁止更新设计文档?,couchdb,Couchdb,我想编写一个validate\u doc\u update函数,如下所示: function(newDoc, oldDoc, userCtx) { var db = userCtx.db; var docId = newDoc._id; if (db === '<dbName>' && docId.indexOf('_design') >= 0) { throw ({ forbidden: 'Design docs sho

我想编写一个
validate\u doc\u update
函数,如下所示:

function(newDoc, oldDoc, userCtx) {
    var db = userCtx.db;
    var docId = newDoc._id;
    if (db === '<dbName>' && docId.indexOf('_design') >= 0) {
        throw ({ forbidden: 'Design docs should be edited in the template DB '});
    };
};
函数(newDoc、oldDoc、userCtx){
var db=userCtx.db;
var docId=newDoc.\u id;
如果(db==''&&docId.indexOf(''u设计')>=0){
抛出({禁止:应在模板数据库中编辑设计文档'});
};
};
因为我从模板数据库复制到内容数据库。这使我可以在开发时更轻松地进行重置(即仅从内容数据库中删除)。一、 和我一起工作的人,在我们删除内容数据库之前,常常会忘记内容数据库中的设计文档。我不允许在content DB中创建视图

但上述情况并不妨碍管理员创建或编辑设计文档。我想这是有道理的,因为你可以很容易地将自己锁定在DB之外


如何实现这一点?

根据我的经验,设计文档上似乎没有调用验证文档更新。这是有意义的,因为我们可以通过在docupdate函数中出错而失去对整个数据库的访问。您可以做的一件事是添加某种反向代理验证。你们可以过滤帖子或者把设计文档的请求放进去。我不会重新编辑你们的问题,因为也许你们是故意这么做的,但在你们的标题中放标签被认为是不好的做法。您的问题已经标记为“couchdb”,因此将问题标题为“couchdb:”只会增加噪音。注意@Flimzy。我在很多帖子上都这么做过。是否值得慢慢地修改它们?@ZachSmith:没有必要进行编辑狂暴,但正如你所注意到的,清理它们是很好的:)根据我的经验,设计文档上似乎没有调用validate_doc_更新。这是有意义的,因为我们可以通过在docupdate函数中出错而失去对整个数据库的访问。您可以做的一件事是添加某种反向代理验证。你们可以过滤帖子或者把设计文档的请求放进去。我不会重新编辑你们的问题,因为也许你们是故意这么做的,但在你们的标题中放标签被认为是不好的做法。您的问题已经标记为“couchdb”,因此将问题标题为“couchdb:”只会增加噪音。注意@Flimzy。我在很多帖子上都这么做过。慢慢地把它们全部修改一下值得吗?@ZachSmith:没必要大肆编辑,但正如你所注意到的,清理它们是件好事:)