Я делал обычную тудушку на Nodejs Handlebars и MongoDB.
Но когда я совершаю get запрос на index.hbs я передаю следующие параметры из базы данных:
router.get("/", async (req, res) => {
const todos = await Todo.find({});
res.render("index", {
title: "Todos List",
isIndex: true,
todos
});
});
Handlebars в консоли выдал мне ошибку:
Server has been started
Handlebars: Access has been denied to resolve the property "completed" because it is not an "own property" of its parent.
You can add a runtime option to disable the check or this warning:
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details
Handlebars: Access has been denied to resolve the property "title" because it is not an "own property" of its parent.
You can add a runtime option to disable the check or this warning:
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details
Я зашел на страницу которая указана в ошибке (
https://handlebarsjs.com/api-reference/runtime-opt...)
Но там, показана работа с handlebars пакетом, а у меня стоит express-handlebars.
А в express-handlebars, нет такого места куда эту настройку можно было передать, там даже переменную result или что-то подобное я никуда не передаю.
Потом я на всякий проверил массив todos, (вывел в консоли) мне выдало:
[
{
completed: false,
_id: 5ee932ae9c45385520bfb76f,
title: 'Купить мозги',
__v: 0
}
]
А в
index.hbs я прошелся по массиву todos и вывел title и обработал наличие true у свойства completed:
<h2>Todos page</h2>
{{#if todos.length}}
<ul>
{{#each todos}}
<li class="todo">
<form action="/complete" method="POST">
<label>
{{#if completed}}
<input type="checkbox" checked />
<span class="completed">{{title}}</span>
{{else}}
<input type="checkbox" />
<span>{{title}}</span>
{{/if}}
<button class="btn btn-small" type="submit">Save</button>
</label>
</form>
</li>
{{/each}}
</ul>
{{else}}
<p>No todos!</p>
{{/if}}
Но в index.hbs мне ничего не выдало даже названия тудушки.
Напомню, что при get запросе на index.hbs, мне вылетает ошибка:
Server has been started
Handlebars: Access has been denied to resolve the property "completed" because it is not an "own property" of its parent.
You can add a runtime option to disable the check or this warning:
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details
Handlebars: Access has been denied to resolve the property "title" because it is not an "own property" of its parent.
You can add a runtime option to disable the check or this warning:
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details
Что делать?