Node.js TypeError:无法读取属性';定义';未定义的
我尝试将我的Db从mongodb更改为mysql,我使用sequelize而不是mongoose,我得到了这个错误,我创建了User.js模型,使用sequelize格式,但出现了一些错误,我不知道为什么Node.js TypeError:无法读取属性';定义';未定义的,node.js,sequelize.js,Node.js,Sequelize.js,我尝试将我的Db从mongodb更改为mysql,我使用sequelize而不是mongoose,我得到了这个错误,我创建了User.js模型,使用sequelize格式,但出现了一些错误,我不知道为什么 const User = sequelize.define('users', { ^ TypeError: Cannot read property 'define' of undefined" 这是我的密码: server.js const Sequ
const User = sequelize.define('users', {
^
TypeError: Cannot read property 'define' of undefined"
这是我的密码:
server.js
const Sequelize = require('sequelize');
// DB Config
const db = require('./config/keys');
// Connect to MySql
const sequelize = new Sequelize(db.database, db.user, db.password, {
host: db.host,
dialect: 'mysql',
port: db.port
});
// Test the connection
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
const serverDB = {};
serverDB.sequelize = sequelize;
serverDB.Sequelize = Sequelize;
module.exports = serverDB;
Users.js
const serverDB = require('../server');
const sequelize = serverDB.sequelize;
const Sequelize = serverDB.Sequelize;
const User = sequelize.define('users', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING,
allowNull: false
},
email: {
type: Sequelize.STRING,
allowNull: false
},
password: {
type: Sequelize.STRING,
allowNull: false
},
avatar: {
type: STRING
},
date: {
type: Sequelize.DATE,
defaudefaultValue: Sequelize.NOW
}
});
sequelize.models.modelName
// sequelize.sync()
// .then(() => {
// console.log('User db and user table have been created')
// });
module.exports = User;
你应该加上
const Sequelize = require('sequelize');
你的客户也是这样
并且只导出并使用小写的sequelize
并确保server.js的相对路径良好。您应该添加
const Sequelize=require('Sequelize')代码>也在您的客户端中。并且只导出并使用小写的sequelize
。仍然是相同的错误您确定server.js的相对路径吗?您检查了路径吗?我仍然不知道错误,但我已经修复了:))谢谢大家