簡體   English   中英

找不到模塊“sequelize/types”

[英]Cannot find module 'sequelize/types'

任何人都知道為什么我會收到此錯誤這是我的代碼

"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"  }

任何解決方案都需要幫助

"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");
  },
};

更好的解決方法是像這樣安裝 Sequelize;

const Sequelize = require("sequelize");

然后像這樣使用它;

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

您甚至可能不需要進行導入,因為 up() 會免費提供給您,您只需要將DataTypes替換為Sequelize

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

當您使用自動導入並導入sequelize/types時,可能會發生此錯誤,您可以在代碼中找到“sequelize/types”並在您應該更改的代碼中刪除

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

如果將第二行更改為;

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

它應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM