【发布时间】:2018-04-15 07:08:36
【问题描述】:
我得到的错误是:
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 是这样表示的。
【问题讨论】:
标签: node.js express npm sequelize.js