【问题标题】:Console showing undefined when displaying the properties of a existing object显示现有对象的属性时控制台显示未定义
【发布时间】:2020-08-07 23:43:10
【问题描述】:
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 代码库的一部分。 在上面的代码 sn-p 中,当我在控制台上记录错误对象时,它会将所有属性显示为:

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

但是,当我在控制台上显示对象的各个属性时,它显示为未定义。 也就是说,console.log(errors.msg) 返回未定义。这是什么原因?

如何显示对象中存在且未定义的属性?

【问题讨论】:

    标签: javascript node.js object javascript-objects


    【解决方案1】:

    似乎errors 对象是一个数组(因此是[])。试试这个:

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

    【讨论】:

    • 我试过了,但是报错:(TypeError: Cannot read property 'msg' of undefined)
    • 您在代码中的哪个位置尝试了console.log(errors);(返回对象),您在哪里尝试了console.log(errors[0].msg);(失败了)?
    • console.log(errors[0].msg) 给出了错误。错误是(TypeError:无法读取未定义的属性'msg')
    • 是的,但是您在代码的哪一部分尝试这样做?您能否编辑您的问题,以便我们知道您插入 console.log(errors) 的确切位置;和 console.log(errors[0].msg);? (例如作为代码中的注释)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2022-11-11
    • 2018-07-24
    • 2015-09-23
    • 2016-09-17
    • 2012-01-17
    • 1970-01-01
    相关资源
    最近更新 更多