Как исправить «ошибка типа не может прочитать свойство 0 неопределенного»? - PullRequest
0 голосов
/ 19 мая 2019

Я не могу получить row[].column_name в моем файле .hbs, хотя когда я console.log(row) показывает результат.

Ошибка следующая:

TypeError: Невозможно прочитать свойство 0 из неопределенного

router.get('/:id/baiviet', (req, res) => {
  var id = req.params.id;
  var p = baivietModel.allByCat(id);
  var q = chuyenmuc.singel(id); // singel(id) return a promise
  var row;

  q.then(rows => {
    row = rows;
  });

  p.then(rows => {
    for (const cm of res.locals.lcChuyenmuc) {
      if (cm.ID == +id) {
        cm.isActive = true;
      }
    }
    res.render('vwBaiviet/byCat', {
      baiviet: rows,
      CM: row[0]
    });
  }).catch(err => {
    console.log(err);
  });
});

Мой файл .hbs:

{{this.CM.Name}}

1 Ответ

0 голосов
/ 20 мая 2019

TypeError: Невозможно прочитать свойство 0 из неопределенного

  var row;

Инициализирует значение row как undefined, следовательно, вы получаете эту ошибку.

Если вы используете Promise.all, вы можете разрешить два обещания и отправить значение сразу.

router.get('/:id/baiviet', (req, res) => {
  var {id} = req.params;

  Promise.all([
    baivietModel.allByCat(id),
    chuyenmuc.singel(id) // singel(id) return a promise
  ]).then(([prows, qrows]) => {

    // ... your other code

    res.render('vwBaiviet/byCat', {
      baiviet: prows,
      CM: qrows[0]
    });
  }).catch(err => {
    console.log(err);
  });

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...