Couchdb 转义字符

Couch DB escape characters

我有一个 CouchDB 的列表函数,但我无法将它放入数据库中,因为我经常遇到语法错误。这是函数:

function(head,req) {
  var headers;
  start({'headers':{'Content-Type' : 'text/csv; charset=utf-8; header=present'}});
  while(r = getRow()) {
    if(!headers) {
      headers = Object.keys(r.value);
      send('"' + headers.join('","') + '"\n');
    }
    headers.forEach(function(v,i) {
      send(String(r.value[v]).replace(/\"/g,'""').replace(/^|$/g,'"'));
      (i + 1 < headers.length) ? send(',') : send('\n');
    });
  }
}

任何人都可以给我一个可以插入 CouchDB 的格式化函数示例吗?

列表函数存储在设计文档中。设计文档是JSON文档,所以你需要确保它们符合JSON标准。由于 List 函数是 JSON 中的字符串值,您需要确保:

  • 转义函数中的任何双引号,因此 " 变为 \"。在可能的情况下,您应该使用单引号而不是双引号。
  • 确保用 \n 替换任何换行符,或者只是删除换行符,因为 Javascript 无论如何都会忽略它们。
  • 转义所有反斜杠,因此 \ 变为 \