'-' символ, вызывающий сбой экспресс-точки
Я получаю сообщение об ошибке при попытке проанализировать структуру 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>