【问题标题】:"Sequelize is not a constructor" while initializing Sequelize初始化 Sequelize 时“Sequelize 不是构造函数”
【发布时间】:2020-01-16 14:59:02
【问题描述】:

我正在尝试在我的代码中使用 ES6 设置 Sequelize,但收到此错误:

TypeError: _sequelize.Sequelize 不是构造函数

这是我的 sequelize.js 文件:

import { Sequelize } from 'sequelize';

import config from './config';

const db = new Sequelize({
  ...config.database,
  pool: {
    max: 5,
    min: 0,
    idle: 10000,
  },
});

export default db;

这是 .babelrc 文件:

{
  "presets": ["@babel/preset-env", "minify"],
  "plugins": [
    [
      "module-resolver",
      {
        "root": ["./", "./src"]
      }
    ]
  ]
}

【问题讨论】:

  • 我认为 Sequelize 是默认导出?尝试从导入中删除花括号。即import Sequelize from 'sequelize';
  • @evolutionxbox 已经尝试了几种方法,例如import Sequelize from 'sequelize';import * as Sequelize from 'sequelize';,但都无济于事
  • 这是他们导入它的方式in their docs。模块安装了吗?
  • 我已经在许多其他项目中安装了它。但是第一次在 ES6 中使用它。
  • module-resolver 是否会导致问题?

标签: javascript node.js ecmascript-6 sequelize.js babeljs


【解决方案1】:

对于我使用 es6 来说,我愿意


import Sequelize from 'sequelize';

const db = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, {
  host: process.env.DB_HOST,
  dialect: 'mysql',
  pool: {
    max: 5,
    min: 0,
    idle: 10000
  },
  flags: '-FOUND_ROWS',
  logging: false
});



我的 babel.config.js 文件是

const presets = [
    "@babel/preset-env",
];
const plugins = [
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-transform-object-assign",
    "@babel/plugin-transform-classes",
    [
        "@babel/plugin-transform-runtime",
        {

            "regenerator": true
        }
    ]
]
module.exports = {presets, plugins};


【讨论】:

  • 问题出在 .babelrc 文件中的 module-resolver 上。将其删除以使其正常工作。
【解决方案2】:

感谢@evolutionxbox 的建议。问题出在 babel 配置本身。删除了 module-resolver 以使其正常工作。 .babelrc 现在看起来像这样:

{
  "presets": ["@babel/preset-env", "minify"],
  "plugins": []
}

【讨论】:

    猜你喜欢
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多