javascript - 在Nodejs Sequelize模型中,如何获取属性的类型信息?

标签 javascript node.js postgresql sequelize.js

我有一个使用 PostgresNodeJS 中的 sequelize 的工作模型。假设模型是 Person 并且有 nameage 字段。现在我想动态检查模型类并获取有关它的属性的信息,例如它们的名称,最重要的是类型

使用Person.attributes 我得到一些信息:

name:
{ type:
  { options: [Object],
    _binary: undefined,
    _length: 255 },

但如您所见,type 对象不会告知 namevarchar 还是 boolean

有谁知道,如何使用sequelize获取这些信息

最佳答案

您可以遍历模型的 rawAtributes

for( let key in Model.rawAttributes ){
    console.log('Field: ', key); // this is name of the field
    console.log('Type: ', Model.rawAttributes[key].type.key); // Sequelize type of field
}

所以 nameSequelize.STRING 的例子是

Field: name
Type: STRING

或者您可以进行几乎相同的迭代,但您可以使用 Model.rawAttributes[key].type.key 而不是使用 Model.rawAttributes[key].type.toSql(),这将产生这个结果

Field: name
Type: VARCHAR(255)

编辑

访问字段的defaultValue:

Model.rawAttributes[字段].defaultValue

检查字段是否允许 NULL 值:

Model.rawAttributes[field].allowNull

关于javascript - 在Nodejs Sequelize模型中,如何获取属性的类型信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42545624/

相关文章:

javascript - 修改 NodeJS 中的 Promise 原型(prototype)

javascript - 如何扩展 'should' 库

postgresql - boolean 值与 PostgreSQL 不一致

Javascript代码分析: Count function, javascript文件中的变量调用和使用

sql - 架构中不存在类型 "geometry",但扩展名存在

sql - 多表与索引行

javascript - 我怎样才能拥有 Google+ 风格的悬浮卡片?

php - 从 PHP 访问 JavaScript 变量

javascript - angularjs 复选框验证至少两个

node.js - Socket.io 失败 : WebSocket is closed before the connection is established