与返回一个复合字符串相比,多个send()命令

时间:2013-11-03 11:42:18

标签: mapreduce nosql couchdb

我正在使用Couch数据库列表视图。输出应该是一个json对象,其结构适合客户端。

我正在从我发送给view函数的值的不同元素创建一个compund字符串。它基本上做的是将子串添加到结果字符串中,该字符串稍后在函数完成时返回。这就是现在的工作。

但是列表视图也有send()函数,它向输出发送一个值,而不会结束列表函数本身。

我看到的是同一问题的两种方法,两种方法都能给出完全相同的输出。

  1. 累计所有预期的输出并在最后返回。
  2. 使用send()并在整个过程完成之前将每个子字符串发送到输出。
  3. 我不知道沙发内部如何处理这两个。有没有一种更有效的首选方式?在那种情况下,这是什么原因?

1 个答案:

答案 0 :(得分:0)

Official documentation say您应该使用以下代码模板

function(head, req) {
  var row;
  start({
    "headers": {
      "Content-Type": "text/html"
     }
  });
  while(row = getRow()) {
    send(row.value);
  }
}

然而,这并不总是有意义的。例如,如果计算MD5总和,则在计算完成后返回它会更加舒适。

所以你必须每次做出决定。