gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:12:00 24 4
gpt4 key购买 nike

我得到的错误是这样的:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com