我是第一次用 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;
这是错误信息: 超级初始化({ ^
TypeError: (intermediate value).init 不是函数 在 Function.init (/home/lagos/Documents/MyProjectSGBD/api/src/models/User.js:7:11) 在对象。 (/home/lagos/Documents/MyProjectSGBD/api/src/database/index.js:8:6) 在 Module._compile (internal/modules/cjs/loader.js:778:30) 在 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) 在要求(内部/模块/cjs/helpers.js:25:18) 在对象。 (/home/lagos/Documents/MyProjectSGBD/api/src/app.js:4:1) [nodemon] 应用程序崩溃 - 在启动之前等待文件更改...
答案 0 :(得分:1)
我认为您的导入不正确。应该是
const { Sequelize, DataTypes, Model } = require('sequelize');
另外,为什么不用 sequelize.define
定义模型。
如果你是通过扩展 Model 来定义它们,那么试试这个
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