我有一个javascript文件,需要在服务器端和客户端之间共享。
该文件包含验证码,我想将它用于客户端和服务器端验证(因此两者保持同步),我还需要客户端的库在浏览器单元测试中做。
我正在使用couchapp。
如何向服务器端提供服务器端javascript文件?
答案 0 :(得分:0)
添加
{
"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中似乎存在不一致(https://issues.apache.org/jira/browse/COUCHDB-2204),仅列出了关键查询的工作(这些是在couchdb中处理的代码)键不同)。