提问者:小点点

这些关联不是通过顺丁烯、方石和电子产生的


我正在开发一个电子应用程序,对于数据库,我正在使用sqlite3和sequelize。我想在以下两个模型之间建立一对多关系。

>

  • 项目

    度量指标可以是升/千克/单位,并且可以在这些指标中的任何一个中测量项目。下面是我如何声明项模型的。

    const{Model,DataTypes}=require(“sequelize”);const sequelize=require(“../database/db”);const Metric=require(“./metricModel”);类项扩展模型{}

    我tem.init({id:{type: DataTypes。整数,自动增量:真,主键:真,},名称:{type: DataTypes。字符串,允许空:假,},metricId:{type: DataTypes。整数,允许空:假,引用:{模型:“度量”,键:“id", }, }, 可用:{类型:数据类型。FLOAT,默认值: 0,},传入:{类型:数据类型。FLOAT,默认值: 0, }, }, { 序列化,tableName:“项目”,freezeTableName:真, } ); 我tem.associate=(模型)=

    下面是我如何声明度量的

    const { Model, DataTypes } = require("sequelize");
    const sequelize = require("../database/db");
    const Item = require("./itemModel");
    
    class Metric extends Model {}
    
    Metric.init(
      {
        id: {
          type: DataTypes.INTEGER,
          autoIncrement: true,
          primaryKey: true,
        },
        name: {
          type: DataTypes.STRING,
          allowNull: false,
        },
        description: {
          type: DataTypes.STRING(10000),
        },
      },
      {
        sequelize,
        tableName: 'metrics', freezeTableName: true 
      }
    );
    Metric.associate = function (models) {
      Metric.hasMany(models.Item, { foreignKey: "metricId" });
    };
    module.exports = Metric;
    

    还包括对项目进行选择查询。如下所示。

    const items = await Item.findAll({include: [Metric]});
    

    我得到以下错误


  • 共1个答案

    匿名用户

    糟糕的是,我的items模型中有一个重复的列,因为在调试过程中,名为item的表预先存在,所以工作正常。如果遇到此问题,请确保正确声明了所有表。