Error: db.sequelize.define is not a function in NodeJS
Error: db.sequelize.define is not a function in NodeJS
我是节点的新手,在这里我要将 mysql 映射到我的节点项目。
model/User.js
const Sequelize = require('sequelize')
const db = require('../database/db.js')
module.exports = db.sequelize.define(
'user',
{
user_id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
first_name: {
type: Sequelize.STRING
},
last_name: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
password: {
type: Sequelize.STRING
}
},
{
timestamps: false
}
);
在上面的代码中 module.exports = db.sequelize.define()
出现错误,因为 db.sequelize.define 不是函数 。代码中出现此错误的原因是什么?
database/db.js
const Sequelize = require("sequelize")
const db = {}
const sequelize = new Sequelize("node","root","",{
host: "localhost",
dialect: "mysql",
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire:30000,
idle:10000
}
})
db.sequelize = sequelize
db.sequelize = Sequelize
module.exports = db
您遇到的问题是您的数据库文件 db.js
定义和导出 sequelize 的方式。我建议您将其更改为:
const { Sequelize } = require('sequelize');
const db = new Sequelize("node","root","",{
host: "localhost",
dialect: "mysql",
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire:30000,
idle:10000
}
})
// I deleted what was causing the problem
module.exports = db;
并且在 model/User.js 中你应该用 db.define()
:
调用 define()
const Sequelize = require('sequelize')
const db = require('../database/db.js')
// I created an object here so you can export it
const User = db.define(
'user',
{
user_id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
first_name: {
type: Sequelize.STRING
},
last_name: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
password: {
type: Sequelize.STRING
}
},
{
timestamps: false
}
);
module.exports = User;
db.sequelize = sequelize
db.sequelize = Sequelize
这就是你的问题所在。
删除第二行。
或将其更改为:
db.Sequelize = Sequelize
然后不使用
const Sequelize = require('sequelize')
在您的文件中,请改用 db.Sequelize。
我是节点的新手,在这里我要将 mysql 映射到我的节点项目。 model/User.js
const Sequelize = require('sequelize')
const db = require('../database/db.js')
module.exports = db.sequelize.define(
'user',
{
user_id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
first_name: {
type: Sequelize.STRING
},
last_name: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
password: {
type: Sequelize.STRING
}
},
{
timestamps: false
}
);
在上面的代码中 module.exports = db.sequelize.define()
出现错误,因为 db.sequelize.define 不是函数 。代码中出现此错误的原因是什么?
database/db.js
const Sequelize = require("sequelize")
const db = {}
const sequelize = new Sequelize("node","root","",{
host: "localhost",
dialect: "mysql",
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire:30000,
idle:10000
}
})
db.sequelize = sequelize
db.sequelize = Sequelize
module.exports = db
您遇到的问题是您的数据库文件 db.js
定义和导出 sequelize 的方式。我建议您将其更改为:
const { Sequelize } = require('sequelize');
const db = new Sequelize("node","root","",{
host: "localhost",
dialect: "mysql",
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire:30000,
idle:10000
}
})
// I deleted what was causing the problem
module.exports = db;
并且在 model/User.js 中你应该用 db.define()
:
define()
const Sequelize = require('sequelize')
const db = require('../database/db.js')
// I created an object here so you can export it
const User = db.define(
'user',
{
user_id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
first_name: {
type: Sequelize.STRING
},
last_name: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
password: {
type: Sequelize.STRING
}
},
{
timestamps: false
}
);
module.exports = User;
db.sequelize = sequelize
db.sequelize = Sequelize
这就是你的问题所在。 删除第二行。 或将其更改为:
db.Sequelize = Sequelize
然后不使用
const Sequelize = require('sequelize')
在您的文件中,请改用 db.Sequelize。