6

2016 年使用 sequelize ORM 的代码中,我看到使用此模式定义的模型类型:

 module.exports = function(sequelize, DataTypes) {
     const Tasks = sequelize.define("Tasks", {  id: {
       type: DataTypes.INTEGER,
       [ ...etc.]

但是,在当前的 sequelize 文档中,您会看到最突出的文档:(Sequelize.INTEGER或其他类型,然后是整数)。同时在当前文档中我还DataTypes发现documented/usedhere

在同一页面上Sequelize.INTEGER使用...,仅适用于延期或其他什么?

我试图找出这是否会随着时间的推移而改变或其他什么,但找不到。

什么时候Sequelize.INTEGER是“当前解决方案”,我可以将上面的代码更改为:

module.exports = function(sequelize, Sequelize) {
  const Tasks = sequelize.define("Tasks", {  id: {
    type: Sequelize.INTEGER,
    [ ...etc.]

或者使用Sequelizeas 参数会以某种方式使这个失败?

4

1 回答 1

4

他们两个中的第二个参数只是sequelize包本身你可以使用你想要使用的任何一个

const Sequelize = require('sequelize');

您会在模型的 index.js 中注意到(如果您按照建议进行设置),您执行了类似下面的操作,您将在其中sequelize作为第二个参数传入。

const model = require(path.join(__dirname, file))(sequelize, Sequelize);

这暴露了数据类型。不管你怎么称呼它。例如,我abc在下面的代码中调用它,您可以使用任何名称

module.exports = (sequelize, abc) => {
  const Driver = sequelize.define('Driver', {
  firstName: {
       type: abc.STRING(),
       allowNull: false
  },
  last_name: {
       type: abc.TEXT,
       allowNull: true
  },
  email: {
      type: abc.TEXT,
      allowNull: false
  },
  password: {
      type: abc.TEXT,
      allowNull: true
  }

与迁移相同。

于 2020-10-07T10:39:09.423 回答