Couch DB转义字符

时间:2015-03-17 13:24:38

标签: couchdb couchdb-futon

我有一个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吗?

1 个答案:

答案 0 :(得分:1)

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

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