node.js - sequelize.import : defineCall is not a function 上的错误

标签 node.js express npm sequelize.js

我得到的错误是这样的:

C:\Users\brend\project\server\node_modules\sequelize\lib\sequelize.js:392
      this.importCache[path] = defineCall(this, DataTypes);
                               ^
TypeError: defineCall is not a function
    at Sequelize.import (C:\Users\brend\project\server\node_modules\sequelize\lib\sequelize.js:392:32)
    at fs.readdirSync.filter.forEach (C:\Users\brend\project\server\src\models\index.js:20:35)

我正在学习 node、vue 和一堆库,但我一直无法弄清楚这一点。

index.js 如下:
const fs = require('fs')
const path = require('path')
const Sequelize = require('sequelize')
const config = require('../config/config')
const db = {}

const sequelize = new Sequelize(
  config.db.database,
  config.db.user,
  config.db.password,
  config.db.options
)

fs
  .readdirSync(__dirname)
  .filter((file) =>
    file !== 'index.js'
  )
  .forEach((file) => {
    const model = sequelize.import(path.join(__dirname), file)
    db[model.name] = model
  })

db.sequelize = sequelize
db.Sequelize = Sequelize

module.exports = db

这是我的 User.js,这是我目前拥有的唯一模型:
module.exports = (sequelize, DataTypes) =>
  sequelize.define('User', {
    email: {
      type: DataTypes.STRING,
      unique: true
    },
    password: DataTypes.STRING
  })

如有必要,我的文件夹结构:
-src
--app.js
--routes.js

--config
----config.js

--controllers
----AuthenticationController.js

--models
----index.js
----User.js

在我的 app.js sequelize.sync() 中还有一个东西未定义,至少这是我的 IDE 所指示的。

最佳答案

我在 github 上找到了这个 sequelize github , 代替

const model = sequelize.import(path.join(__dirname, file));
var model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
它适用于 sequelize 6.3.0

关于node.js - sequelize.import : defineCall is not a function 上的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47080727/

相关文章:

javascript - Node npm - 在前端引用 Three.js 模块

node.js - 如何使 node_modules 成为全局的而不是项目内的文件夹

javascript - 为什么 readdirSync 会自动对结果进行排序?

javascript - Meteor.js 中模板助手和模板变量的区别

node.js - PM2 Logrotate不断生成新日志

javascript - 服务器返回空响应

npm - 运行 mocha 排除路径

javascript - Node.js 的多个菜单

node.js - 为什么此示例代码使用 process.nextTick?

node.js - 尽管 MongoDB 中存在集合,Mongoose 显示空对象