Консоль показывает неопределенный при отображении свойств существующего объекта - PullRequest
0 голосов
/ 24 апреля 2020
var errors = validationResult(req);

console.log("errors: errors");

if (!errors.isEmpty()) {
  res.render('signIn-signUp', {
    'error1': errors.msg + " " + errors.value + " Please signUp again!!"
  });
} else {
  var id = 0;
  pool.query("Select Max(C_Id) as C_Id from customer", function(error, rows) {
        if (error) {
          console.log("Database error: ", error);
          res.render('signIn-signUp', {
            'error1': "database error: " + error + "please sign up again!"
          });

Приведенный выше код является частью nodeJs кодовой базы. В приведенном выше фрагменте кода, когда я регистрирую объект ошибок на консоли, он показывает все свойства как:

errors: [{
  value: 'a',
  msg: 'Must be at least 5 char long',
  param: 'Password',
  location: 'body'
}]

, но когда я отображаю отдельные свойства объекта на консоли, он показывает его как не определено. То есть console.log (errors.msg) возвращает неопределенное значение. В чем причина?

Как отобразить свойства, которые существуют в объекте и не определены?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Как вы сказали ранее в вопросе, errors вы вышли из системы:

[{
  value: 'a',
  msg: 'Must be at least 5 char long',
  param: 'Password',
  location: 'body'
}]

Это массив объектов (где в данном случае мы сталкиваемся только с одним объектом). Чтобы напечатать сообщение каждого объекта, вы можете просто использовать forEach помощник по массиву, как показано ниже:

errors.forEach(error => {
  console.log('error message:', error.msg)
})

ПРИМЕЧАНИЕ: Этот помощник будет перебирать ваш массив и отображать все объекты 'сообщения, когда они получили свойство msg.

Вот рабочий пример:

var errors = [{
  value: 'a',
  msg: 'Must be at least 5 char long',
  param: 'Password',
  location: 'body'
}]

errors.forEach(error => {
  console.log('erorr message:', error.msg)
})
0 голосов
/ 24 апреля 2020

Кажется, что объект errors является массивом (отсюда []). Попробуйте это:

    console.log(errors[0].msg);
...