Переменные внутри проектной документации - PullRequest
0 голосов
/ 26 сентября 2019

Почему это не компилируется?

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;
    }
  }
}

1 Ответ

2 голосов
/ 26 сентября 2019

Вы пытаетесь использовать неподдерживаемый синтаксис для движка CouchDB JS.

Вы должны удалить объявление переменной let и использовать var

CouchDB использует SpiderMonkey 1.8.5, который поддерживает ECMAScript Edition 5

...