हाय सब मुझे एक त्रुटि हो रही है "त्रुटि: Text.belongsTo जिसे कुछ ऐसा कहा जाता है जो Sequelize.Model का उपवर्ग नहीं है" जब मैं अपने मॉडल में Sequelize का जुड़ाव जोड़ता हूं तो इसे एक त्रुटि कहा जाता है जिसे मैं कॉल करता हूं सीक्वेलाइज मॉडल नहीं है।

यहां मेरे मॉडल का कोड है, मैं पोस्ट मॉडल और टेक्स्ट मॉडल के बीच एक संबंध बनाने की कोशिश करता हूं।

./पोस्ट.जेएस

const { DataTypes } = require('sequelize');
const sequelize = require('../../db/sequelize.setup');

const Text = require('./Text');

const Post = sequelize.define(
  'Post',
  {
    id: {
      type: DataTypes.INTEGER,
      autoIncrement: true,
      primaryKey: true,
      allowNull: false,
    },
    title: {
      type: DataTypes.STRING(),
      allowNull: false,
    },
    tags: {
      type: DataTypes.ARRAY(DataTypes.INTEGER),
      allowNull: true,
    },
    items: {
      type: DataTypes.ARRAY(DataTypes.INTEGER),
      allowNull: false,
    },
    author: {
      type: DataTypes.INTEGER,
    },
  },
  {
    modelName: 'Post',
    timestamps: true,
  }
);

  Post.hasMany(Text, {
    as: 'Text',
    foreignKey: 'post_id',
    sourceKey: 'id',
  });

module.exports = Post;

./Text.js

 const { DataTypes } = require('sequelize');
    const sequelize = require('../../db/sequelize.setup');
    
    const Post = require('./Post');
    
    const Text = sequelize.define(
      'Text',
      {
        id: {
          type: DataTypes.INTEGER,
          autoIncrement: true,
          primaryKey: true,
          allowNull: false,
        },
        text: {
          type: DataTypes.STRING(),
          allowNull: false,
        },
      },
      {
        modelName: 'Text',
        timestamps: true,
      }
    );
    
    Text.belongsTo(Post, { as: 'Post', foreignKey: 'post_id', targetKey: 'id' });
    
    module.exports = Text;
0
Іван Найда 22 अक्टूबर 2020, 14:22

1 उत्तर

सबसे बढ़िया उत्तर

अपने मॉडल फ़ोल्डर में एक index.js फ़ाइल बनाने का प्रयास करें और इसके अंदर अपनी संबद्धता को इस तरह बनाएं

const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.posts=require("./post.js")(sequlize,sequlize);
db.texts=require....
db.posts.hasMany(db.texts, { foreignKey: 'postId' });
db.texts.belongsTo(db.posts, { foreignKey: 'postId' });

और postId को text.js मॉडल में डाल दें

1
Hamdi Alhamoi 22 अक्टूबर 2020, 21:11