Node.js 用户与温度无关。后继加载错误
在我的应用程序中,每个用户都可以记录许多温度,但一个温度记录应该只有一个用户。我试图执行以下代码,并面临“用户与温度无关”错误。请检查我下面的代码,让我知道哪里出了问题。 这是我的用户模型Node.js 用户与温度无关。后继加载错误,node.js,join,sequelize.js,associations,eager-loading,Node.js,Join,Sequelize.js,Associations,Eager Loading,在我的应用程序中,每个用户都可以记录许多温度,但一个温度记录应该只有一个用户。我试图执行以下代码,并面临“用户与温度无关”错误。请检查我下面的代码,让我知道哪里出了问题。 这是我的用户模型 const { Sequelize, DataTypes, Model } = require('sequelize'); const sequelize = require('../connection'); var Temperature = require('./temperature'); var
const { Sequelize, DataTypes, Model } = require('sequelize');
const sequelize = require('../connection');
var Temperature = require('./temperature');
var User = sequelize.define('User', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true,
},
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING,
allowNull: false
},
email: {
type: DataTypes.STRING,
allowNull: false
},
password: {
type: DataTypes.STRING,
allowNull: false
},
status: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: 'Active'
},
role: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: 'Admin'
}
});
User.associate = (models) => {
User.hasMany(models.Temperature, { as: 'temperatures' })
}
module.exports = User;
这是我的温度模型
const { Sequelize, DataTypes, Model } = require('sequelize');
const sequelize = require('../connection');
const User = require('./users');
var Temperature = sequelize.define('Temperature', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
userId: {
type: DataTypes.INTEGER,
allowNull: false,
},
temperature: {
type: DataTypes.FLOAT,
allowNull: false
},
recordDateTime: {
type: DataTypes.DATE,
allowNull: false
}
});
Temperature.associate = (models) => {
Temperature.belongsTo(models.User, { foreignKey: 'userId', as: 'user' })
}
module.exports = Temperature;
我在运行以下代码时出错
Temperature.findAll({ include: User, raw:true})
.then((res)=>{
console.log(res);
})
你能帮我解决这个问题吗。
两个模型中的关联函数均未执行。您不需要将
userId
列添加到Temperature
模型架构中,只需像之前一样定义关联,即使您想在模型架构中添加userId
列,也可以像下面那样执行,但必须像下面那样将其添加到Temperature
模型架构的迁移文件中
userId:{
类型:Sequelize.INTEGER,
allowNull:错,
参考资料:{
model:'Users',//你能检查一下你的数据库中是否反映了这个约束吗?我想没有。我已经在postgres中运行了join的sql查询。它正在工作。不,不是通过进行join查询,请尝试SHOW CREATE TABLE;
看看你在创建查询中是否有外键约束我在mi中提到过也是免费的,但仍然面临这个问题