如何在Sequelize中将模型列的类型以字符串形式返回?
获取Sequelize模型列的字符串类型标识
要拿到INTEGER这类字符串形式的类型标识,直接访问类型对象的key属性即可,这是Sequelize内置的标准属性,用来存储类型的字符串标识。
示例代码
假设你的模型定义如下:
const { Sequelize, DataTypes } = require('sequelize'); const sequelize = new Sequelize('sqlite::memory:'); const Book = sequelize.define('Book', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, title: { type: DataTypes.STRING(255) }, publishDate: { type: DataTypes.DATE } });
获取列类型标识的代码:
// 获取id列的类型 const idType = Book.getAttributes().id.type.key; console.log(idType); // 输出: INTEGER // 获取title列的类型 const titleType = Book.getAttributes().title.type.key; console.log(titleType); // 输出: STRING // 获取publishDate列的类型 const dateType = Book.getAttributes().publishDate.type.key; console.log(dateType); // 输出: DATE
兼容旧版本Sequelize
如果你的Sequelize版本较旧(v5及以前),key属性可能不存在,此时可以通过constructor.name获取:
const idType = Book.getAttributes().id.type.constructor.name; console.log(idType); // 输出: INTEGER
内容的提问来源于stack exchange,提问作者gr_new
相关产品推荐
相关产品推荐

