【发布时间】:2021-05-11 13:33:15
【问题描述】:
我的代码似乎一切正常。有一个客户表,地址是外部表。但是我收到一条错误消息 if (dialectTypes[type.key]) { 类型错误:无法读取 null 的属性“键”。这是我的代码-
module.exports = (sequelize,DataTypes) => {
const customers = sequelize.define("customers",{
customerId: {
type: DataTypes.INTEGER,
primarykey : true,
unique: true
},
firstname :{
type: DataTypes.STRING,
allowNull : false
},
lastname: DataTypes.STRING,
username : DataTypes.STRING,
email: DataTypes.STRING,
password: DataTypes.STRING,
mobileNumber: DataTypes.STRING,
customerGroupId: DataTypes.INTEGER,
avatar: DataTypes.STRING,
avatarPath: {
type: DataTypes.STRING,
default: "/customer"
},
newsLetter: DataTypes.STRING,
deleteFlag: DataTypes.STRING,
mailStatus: DataTypes.INTEGER,
status: DataTypes.INTEGER,
oauthData: null,
isActive: DataTypes.INTEGER,
createdBy: null,
modifiedBy: null
})
return customers;
}
这是地址表-
module.exports = ( sequelize,DataTypes) => {
const address = sequelize.define("address",{
customerId: DataTypes.INTEGER,
address : DataTypes.STRING,
countryId : DataTypes.INTEGER,
zoneId :DataTypes.INTEGER,
city: DataTypes.STRING,
local: DataTypes.STRING,
pincode : DataTypes.INTEGER
})
return address;
}
这是我的 index.js 文件,我在其中关联了客户和地址表 -
const {Sequelize,DataTypes} = require('sequelize')
const sequelize = new Sequelize('spurtcommerce','root','',{
host:'localhost',
dialect:'mysql',
port:3308
});
sequelize.authenticate()
.then(()=>{
console.log("Connection established")
}
)
.catch(error =>{
console.log("Error connecting to db")
})
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
// for customer table--->
db.customers = require('./customer') (sequelize,DataTypes);
db.address = require('./address') (sequelize,DataTypes);
db.sequelize.sync({force:false})
.then(() =>{
console.log("yes re sync customer")
})
.catch(error=>{
console.log("error",+error)
})
db.customers.hasOne(db.address,{foreignKey:'customerId'})
db.address.belongsTo(db.customers,{foreignKey:'customerId'})
module.exports = db;
【问题讨论】:
-
这不是触发错误的代码...请发布完整的堆栈跟踪和触发它的相关代码!
-
你现在能告诉我已经添加了 index.js 文件吗?
-
哪个文件/行触发了错误?您是否尝试注释掉以下两行之一并查看它是否是特定模型?
db.customers = require('./customer') (sequelize,DataTypes); db.address = require('./address') (sequelize,DataTypes);
标签: node.js types orm sequelize.js