给定JSON中的第一行是什么?

时间:2015-10-15 14:02:15

标签: javascript json node.js sequelize.js

在nodeJs中使用Sequelize时,我从Sequelize收到此错误,如下所示:

{ [SequelizeUniqueConstraintError: Validation error]
  name: 'SequelizeUniqueConstraintError',
  message: 'Validation error',
  errors: 
   [ { message: 'unique_identifier_UNIQUE must be unique',
       type: 'unique violation',
       path: 'unique_identifier_UNIQUE',
       value: 'authentication123456' } ],
  fields: { unique_identifier_UNIQUE: 'authentication123456' } }

错误本身非常清楚。但引起我注意的是这个JSON看起来很怪异。 在这个JSON的第一行,您可以看到:

  

[SequelizeUniqueConstraintError:验证错误]

哪个不是字符串,也不是数组,甚至没有后跟逗号将它与JSON中的下一行分开。

那是什么呢?它看起来像是对我的评论或标题。但是JSON允许这样做吗?我没有找到任何解释这一点的参考资料。

1 个答案:

答案 0 :(得分:0)

好的,我明白这是从哪里来的。

使用console.log(err)命令打印此错误。它的作用是调用err对象的toString方法,它按原样格式化结果。 感谢@Pointy,我注意到这甚至不是JSON,这让我理解了这个问题。因此,调用JSON.stringify(错误)而不是console.log(错误),现在我们有正确的jSON格式:

{
    "name": "SequelizeUniqueConstraintError",
    "message": "Validation error",
    "errors": [
        {
            "message": "unique_identifier_UNIQUE must be unique",
            "type": "unique violation",
            "path": "unique_identifier_UNIQUE",
            "value": "authentication123456"
        }
    ],
    "fields": {
        "unique_identifier_UNIQUE": "authentication123456"
    }
}