gpt4 book ai didi

node.js - 用户与温度无关。 Sequelize Eager 加载错误

转载 作者:行者123 更新时间:2023-12-03 22:33:32 25 4
gpt4 key购买 nike

在我的应用程序中,每个用户可以记录许多温度,但一个温度记录应该只有一个用户。我正在尝试执行以下代码并面临“用户与温度无关”错误。请查看下面的代码,让我知道我哪里出错了。
这是我的用户模型

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: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: 'Users', // <----- name of the table
key: 'id' // <----- primary key
}
}

关于node.js - 用户与温度无关。 Sequelize Eager 加载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64359241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com