sequelize中为什么会把`isDelete`as`is_delete`

queryInterface.createTable("tags",{
      id:{ type:INTEGER, primaryKey:true, autoIncrement:true},
      name:STRING(30),
      isDelete:BOOLEAN,
      createdAt:{
        type:DATE,
// 可以重写某个字段的字段名
        field:"createdAt",
        allowNull:false,
        defaultValue:NOW
},
      updatedAt:{
        type:DATE,
        field:"updatedAt",
        allowNull:false,
        defaultValue:NOW
}
})

上面是表,然后查询的时候

ctx.model.Tag.findAndCountAll({limit:10,offset:0})

报错

...
SELECT `id`, `name`, `is_delete` AS `isDelete`, `created_at` AS `createdAt`, `updated_at` AS `updatedAt` FROM `tags` AS `tag` LIMIT 0, 10;
...
nodejs.SequelizeDatabaseError: Unknown column 'is_delete' in 'field list'
阅读 3.4k
4 个回答

就是为了起个别名,为了好理解。可以能字段名不太好理解,换个自己觉得更好的名。

别名,大概率是因为变量命名规则在不同的语言下有着不同的标准,不按照标准,代码静态检查会检查出一堆问题。

新手上路,请多包涵

const sequelize = new Sequelize('database', 'username', null, { operatorsAliases: false })

定义模型的时候写上underscore选项即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题