从couchdb向客户端提供lib/serverSide_library.js

从couchdb向客户端提供lib/serverSide_library.js,couchdb,Couchdb,我有一个javascript文件,需要在服务器端和客户端之间共享 背景: 该文件包含验证代码,我想将其用于客户端和服务器端验证(因此两者保持同步),我还需要客户端上的库来执行浏览器单元测试 我用的是couchapp 总结: 如何向客户端提供服务器端javascript文件?添加 { "include_design": "true" } 到couchapp根目录中的options.json 然后视图可以包含设计文档,您必须编辑现有视图,使其不发出设计文档 然后添加的views/desig

我有一个javascript文件,需要在服务器端和客户端之间共享

背景: 该文件包含验证代码,我想将其用于客户端和服务器端验证(因此两者保持同步),我还需要客户端上的库来执行浏览器单元测试

我用的是couchapp

总结: 如何向客户端提供服务器端javascript文件?

添加

{ 
  "include_design": "true" 
}
到couchapp根目录中的
options.json

然后视图可以包含设计文档,您必须编辑现有视图,使其不发出设计文档

然后添加的
views/design/map.js

function(doc) {  
    if (typeof String.prototype.startsWith != 'function') {
        String.prototype.startsWith = function (sub){
            var self=this;
            return self.substring(0, sub.length) === sub;
        }
    };

    var id = doc._id;

    if (id.startsWith( "_design/")){
        emit(null, null); // use query `include_docs=true`
    }
}
然后你可以写一个类似的列表

function  (head, req) {
    var ddoc = this;

    var dir=req.query["~dir"];
    var name=req.query["~name"];

    var Result="";

    function process(row){
        if (row.doc) {
            Result = row.doc[dir][name]; 
        } 
    }

    function mainLoop(){
        while (row = getRow() ) {
            process(row);
        }
    }

    mainLoop();

    send( Result);
}
重写

{ 
    "from": "server_lib/:~name",
    "to": "_list/sub/design",
    "query": {
        "~dir": "lib",
        "include_docs": "true"
    }
}
注意:我试图对
“~path”:[“lib”、“:~name”]、“include…”
进行查询,但couchdb中似乎存在不一致性(),列表仅适用于键查询(这是couchdb中处理不同键的代码)