Доступ к свойствам Hnadlebars запрещен в узлах

#node.js #express #handlebarshelper

Вопрос:

Я получаю сообщение об ошибке:

Руль: Доступ был запрещен для разрешения свойства «статус», поскольку оно не является «собственным свойством» своего родителя. Вы можете добавить опцию времени выполнения, чтобы отключить проверку или это предупреждение:

Мой код выглядит так:

 var hbs = require('express-handlebars');

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
app.engine('hbs', hbs({
  extname: 'hbs',
  deafultLayout: 'layout',
    layoutsDir: __dirname   '/views/layouts/',
    partialsDir: __dirname   '/views/partials'
  }, {
    allowProtoMethodsByDefault: true,
    allowProtoPropertiesByDefault: true
  }));
 

Ответ №1:

Настройка механизма просмотра выполнена правильно. Проблема в том, как вы отрисовали свой файл.

Случай 1

Он status должен находиться внутри отправляемого родительского объекта.

Не делай этого:

 res.render('fileName', {data:status})
 

Сделайте это вместо этого:

 const myObject = {status: your_data}
res.render('fileName', {myObject:myObject})
 

и сделайте что-нибудь подобное в своем файле на руле

 <p>{{myObject.status}}</p>
 

Случай 2

Если вы пытаетесь извлечь данные из MongoDB/Мангуста, чтобы отобразить их во внешнем интерфейсе, просто добавьте .метод lean() после .find()

 const data = await ModelName.find({}).lean()
 

Комментарии:

1. я действительно не понял вашего комментария. я пытаюсь отобразить req.body в консоли. тогда я получаю эту ошибку. данные поступают из формы. пожалуйста, помогите