'-' символ, вызывающий сбой экспресс-точки

Я получаю сообщение об ошибке при попытке проанализировать структуру JSON с помощью Node.js, Express и DoT. Кажется, он обрабатывает специальные символы в объекте JSON ниже...

<td>
  {{= "Overview: " + record._source.explanation.overview + " Name: " + record._source.explanation.detailed-explanation.name }}
</td>

Первая часть запроса работает нормально (без символа "-" в структуре), но когда я пытаюсь получить доступ к record._source.explanation.detailed-explanation.name, он выдает ошибку с сообщением ниже.

undefined:2
source.explanation.analysis + " " + record._source.explanation.detailed-explanation.name
                                                                    ^
ReferenceError: explanation is not defined
    at Object.eval (eval at <anonymous> (/myapp/node_modules/express-dot/node_modules/dot/doT.js:125:11), <anonymous>:2:1715)
    at /myapp/node_modules/express-dot/express-dot.js:23:30
    at fs.js:266:14
    at Object.oncomplete (fs.js:107:15)

Я пытался избежать символа "-", например, "-" и т. Д., Но безуспешно. В действительности нет возможности вернуться и реструктурировать базовый JSON для удаления '-s. Любые идеи о том, как пройти специальный персонаж?

Спасибо!!!

1 ответ

Решение

При доступе к свойствам с именами, которые не являются допустимыми идентификаторами JavaScript, необходимо использовать квадратную скобку вместо точечной.

<td>
  {{= "Overview: " + record._source.explanation.overview + " Name: " + record._source.explanation["detailed-explanation"].name }}
</td>
Другие вопросы по тегам