Couchdb 设计文档中的变量

Couchdb 设计文档中的变量,couchdb,design-documents,Couchdb,Design Documents,为什么不编译 function (newDoc, oldDoc, userCtx) { if (newDoc !== null) { if (newDoc.type.toLowerCase() === 'test') { let thisDoesNotWork = 5; } } } 它抛出: { "error": "compilation_error", "reason": "Expression does not eval to a fun

为什么不编译

function (newDoc, oldDoc, userCtx) {
  if (newDoc !== null) {
    if (newDoc.type.toLowerCase() === 'test') {
      let thisDoesNotWork = 5;
    }
  }
}
它抛出:

{
    "error": "compilation_error",
    "reason": "Expression does not eval to a function. (function (newDoc, oldDoc, userCtx) {    if (newDoc !== null) {      if (newDoc.type.toLowerCase() === 'test') {        let thisDoesNotWork = 5;      }    }  })"
}
通过向其添加一个新键来尝试将其扩展到newDoc,就像下面的操作也不起作用一样,并抛出相同的错误,但只有当您尝试使用它时,而不是仅声明它时,才会抛出相同的错误

function (newDoc, oldDoc, userCtx) {
  if (newDoc !== null) {
    if (newDoc.type.toLowerCase() === 'test') {
      let newDoc.thisDoesNotWork = 5;
    }
  }
}

您正在尝试对CouchDB JS引擎使用不受支持的语法

您应该删除let变量声明并使用var


CouchDB依赖于支持ECMAScript Edition 5的SpiderMonkey 1.8.5。您试图为CouchDB JS引擎使用不受支持的语法

您应该删除let变量声明并使用var


CouchDB依赖于SpiderMonkey 1.8.5,它支持ECMAScript第5版

@JuanjoRodriguez,我真的说这是我的需要。我需要在设计文档中使用一个变量。声明变量似乎不起作用,所以我尝试向现有对象添加一个键。您可以在函数中定义变量。现在还不清楚你的设计是什么意思documents@JuanjoRodriguez我用一个较小的例子更新了这个问题。@juanjordriguez我真的说这是我的需要。我需要在设计文档中使用一个变量。声明变量似乎不起作用,所以我尝试向现有对象添加一个键。您可以在函数中定义变量。现在还不清楚你的设计是什么意思documents@JuanjoRodriguez我用一个较小的例子更新了这个问题。