【问题标题】:Cannot find module 'sequelize/types'找不到模块“续集/类型”
【发布时间】:2022-02-25 03:10:35
【问题描述】:

任何人都知道我为什么会收到此错误 这是我的代码

"use strict";
const { DataTypes } = require("sequelize/types");

module.exports = {
  up: async (queryInterface, DataTypes) => {
    await queryInterface.createTable("dummytables", {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: DataTypes.INTEGER,
      },
      id: {
        type: DataTypes.NUMBER,
      },
      first_name: {
        type: DataTypes.STRING,
        allowNull: false,
      },
      last_name: {
        type: DataTypes.STRING,
        allowNull: false,
      },
    });
  },
  down: async (queryInterface, DataTypes) => {
    await queryInterface.dropTable("dummytables");
  },
};

当我试图运行这个命令时sequelize db:migrate 它向我展示了ERROR: Cannot find module 'sequelize/types'

我的依赖文件

  "dependencies": {
"@types/sequelize": "^4.28.9",
    "express": "^4.17.1",
    "mysql2": "^2.2.5",
    "sequelize": "^6.5.0",
    "sequelize-cli": "^6.2.0"  }

任何解决方案都需要帮助

【问题讨论】:

  • 你确定你安装了那个模块吗?显示 package.json 文件中的依赖项部分。
  • { "name": "sqlSequelize", "version": "1.0.0", "description": "", "main": "app.js", "dependencies": { "express": "^4.17.1", "mysql2": "^2.2.5", "sequelize": "^6.5.0" }, "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } @m_hm0ud 见
  • 你在使用打字稿吗?
  • 不使用打字稿@m_hm0ud
  • 这个问题可以为你解答:stackoverflow.com/questions/65204670/…

标签: mysql node.js sequelize.js sequelize-cli


【解决方案1】:
"use strict";
//const { DataTypes } = require("sequelize/types"); // Remove this line

module.exports = {
  up: async (queryInterface, DataTypes) => {
    await queryInterface.createTable("dummytables", {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: DataTypes.INTEGER,
      },
      id: {
        type: DataTypes.NUMBER,
      },
      first_name: {
        type: DataTypes.STRING,
        allowNull: false,
      },
      last_name: {
        type: DataTypes.STRING,
        allowNull: false,
      },
    });
  },
  down: async (queryInterface, DataTypes) => {
    await queryInterface.dropTable("dummytables");
  },
};

【讨论】:

【解决方案2】:

如果你把第二行改成;

const { DataTypes } = require("sequelize");

它应该可以正常工作。

【讨论】:

  • 更好的方法是将异步回调中的Sequelize参数替换为DataTypes,导入DataTypesSequelize的存在会导致一定的冲突,至少我是这么认为的
【解决方案3】:

更好的解决方法是安装 Sequelize 之类的;

const Sequelize = require("sequelize");

然后像这样使用它;

first_name: {
    type: Sequelize.STRING,
    allowNull: false,
},

您甚至可能不需要进行导入,因为 up() 会免费提供给您,您只需将 DataTypes 替换为 Sequelize

async up(queryInterface, Sequelize) {
    ...
}

【讨论】:

    【解决方案4】:

    这个错误,可能是当你使用auto import并且它导入sequelize/types,你可以发现代码中有'sequelize/types'和删除它在你应该改变的代码中

    const {DataTypes} = require('sequelize');
    

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      • 2020-04-25
      • 2021-09-01
      • 1970-01-01
      相关资源
      最近更新 更多