Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 用户与温度无关。后继加载错误_Node.js_Join_Sequelize.js_Associations_Eager Loading - Fatal编程技术网

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中提到过也是免费的,但仍然面临这个问题