模型 sequelize nodejs TypeError:(中间值).init 不是一个函数
我第一次使用 ORM sequelize 制作应用程序,我进入了模型部分,但是当我运行它时,它指出了一个我无法解决的错误,如果有人知道或可以帮助我,请提前谢谢,我会在下面留下模型代码和错误消息
const Model = require('sequelize');
const DataTypes = require('sequelize');
class User extends Model {
static init(sequelize) {
super.init({
name: DataTypes.STRING,
password: DataTypes.INTEGER,
email: DataTypes.STRING,
}, {
sequelize
})
}
}
module.exports = User;
这是错误消息: super.init({ ^
TypeError:(中间值).init 不是函数 at Function.init (/home/lagos/Documents/MyProjectSGBD/api/src/models/User.js:7:11) at Object. (/home/lagos/Documents/MyProjectSGBD/api/src/database/index.js:8:6) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) 在 Module.load (internal/modules/cjs/loader.js:653:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:593:12) 在 Function.Module._load (internal/modules/cjs/loader.js:585:3) 在 Module.require (internal/modules/cjs/loader.js:692:17) 在 require (internal/modules/cjs/helpers.js:25:18) 在 Object. (/home/lagos/Documents/MyProjectSGBD/api/src/app.js:4:1) [nodemon] 应用程序崩溃 - 正在等待文件更改后再启动...
我认为您的导入不正确。应该是
const { Sequelize, DataTypes, Model } = require('sequelize');
此外,为什么不使用
sequelize.define
定义模型。
如果您通过扩展模型来定义它们,请尝试这个
const { Sequelize, DataTypes, Model } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');
class User extends Model {}
User.init({
name: DataTypes.STRING,
password: DataTypes.INTEGER,
email: DataTypes.STRING,
},{
sequelize
});
console.log(User === sequelize.models.User); // true