node.js - 使用 Sequelize 和 DataTypes 作为数据类型

标签 node.js sequelize.js

我之前使用过与 the one from Sequelize documentation 非常相似的模型定义配方。 ,其中模型定义用工厂函数包装起来,输入到 sequelize.import :

module.exports = (sequelize, DataTypes) => {
  return sequelize.define('SomeModel', {
    field: DataTypes.STRING(100)
  });
};

此结构对我有用,但从模块导出包装函数并不总是很方便(例如,当它导出使用 DataTypes 的基本模型的类时,但不应使用 导入>sequelize.import)。

对于数据类型,Sequelize 是否可以与 DataTypes 完全互换(DataTypes.STRINGSequelize.STRING),那么工厂函数可以省略吗?

DataTypes 是否可以依赖于在 sequelize 实例中选择的方言,从而成为首选?

最佳答案

是的,Sequelize 与数据类型的 DataType 完全可互换。

https://github.com/sequelize/sequelize/blob/3e5b8772ef75169685fc96024366bca9958fee63/lib/sequelize.js

数据类型也根据方言进行映射,但它们被添加到 Sequelize 类中,因此您可以使用其中之一

https://github.com/sequelize/sequelize/blob/3e5b8772ef75169685fc96024366bca9958fee63/lib/data-types.js#L57

关于node.js - 使用 Sequelize 和 DataTypes 作为数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42102476/

相关文章:

Node.js 和 MongoDB 时区问题 驱动程序未正确转换 UTC?

node.js - Sequelize findOrCreate 回退以捕获是否找到数据

node.js - 如何通过exec进程在node js中强制UTF-8?

node.js - Windows 7 中的错误 fsevents@1.0.14

mysql - 多个表上的 sequelize 查询中的竞争条件

node.js - sequelize force 标记迁移完成

sql - 如何使用 sequelize.js 同时对多行执行查询?

node.js - 使用批处理文件安装多个 Node 模块

javascript - 等待 Sequelize 中所有未决的 promise

mysql - Sequelize 属于ToMany 不起作用