Как создать с помощью ассоциации hasMany в sequelize 6.0 - PullRequest
0 голосов
/ 10 июля 2020

У меня указанная ниже модель заказа.
У этого будет много компаний в качестве ассоциации.

 module.exports = function (sequelize, DataTypes) {
  const order = sequelize.define(
    "order",
    {
      name: {
        field: "name",
        type: DataTypes.STRING(50),
        allowNull: false,
      },
      uid: {
        field: "uuid",
        type: DataTypes.STRING(50),
        allowNull: false,
      },
      blocked: {
        field: "blocked",
        type: DataTypes.BOOLEAN(),
        allowNull: false,
        defaultValue: 0,
      },
    },
    {
    }
  );

  order.associate = function (models) {
    order.hasMany(models.company, {
      as: "total_company",
      foreignKey: "order_id",
    });
  };

  return order;
};

А у меня есть еще одна модель под названием «компания».

module.exports = function (sequelize, DataTypes) {
  const company = sequelize.define(
    "company",
    {
      order_id: {
        type: DataTypes.INTEGER,
      },
      position: {
        type: DataTypes.INTEGER,
        allowNull: false,
      },
     
    },
    {
      
    }
  );

  company.associate = function (models) {
    company.belongsTo(models.order, {
      foreignKey: "order_id",
    });
  };

  return company;
};

И, как вы можете видеть, заказ имеет многие компании. Я сделал api на express, который может вставлять данные в модель заказа.

const models = require("../models");

exports.insertOrder = async (req, res) => {
  const { name, uuid, blocked } = req.body

  try {
    await models.order.create({
      name,
      uuid,
      blocked,
    });
  } catch (error) {
    return res.json({
      error,
    });
  }
  return res.json({
    success: true,
  });
};

Но я хочу вставить этот тип данных.

req.body = { 
   name: 'test',
   uuid: '2323jak',
   blocked: 0,
   company: [
      {
        position: 29 
      },
      {
        position: 30 
      },
   ]    
}

Как я могу создать сиквелиз для hasMany типа?
Спасибо, что прочитали.

...