我有一个使用 Postgres
和 NodeJS
中的 sequelize
的工作模型。假设模型是 Person
并且有 name
和 age
字段。现在我想动态检查模型类并获取有关它的属性的信息,例如它们的名称,最重要的是类型。
使用Person.attributes
我得到一些信息:
name:
{ type:
{ options: [Object],
_binary: undefined,
_length: 255 },
但如您所见,type
对象不会告知 name
是 varchar
还是 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
}
所以 name
是 Sequelize.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/