gpt4 book ai didi

javascript - 以一对一的关系插入数据belongsTo Sequelize

转载 作者:行者123 更新时间:2023-12-03 22:17:38 27 4
gpt4 key购买 nike

我有两个架构

  • 地址
  • 员工

  • 每个员工都有一个地址,所以我的架构如下

    员工.js
    const address = conn.define('address', {
    street: Sequelize.TEXT,
    city: Sequelize.STRING,
    postalCode: Sequelize.STRING,
    });

    const employee = conn.define('employee', {
    empId: {
    type: Sequelize.INTEGER,
    },
    name: {
    type: Sequelize.STRING,
    },
    joinDateTime: {
    type: Sequelize.DATE,
    },
    });

    address.belongsTo(employee);

    employee.sync();
    address.sync();
    module.exports = employee;

    下面是插入逻辑,它不起作用,我如何执行关联插入

    项目是数组中的一个对象,我在其中执行了 forEach
    const obj = {
    empId: item.empId,
    name: item.name,
    joinDateTime: item.joinDateTime,
    };
    const address = {
    street: item.street,
    city: item.city,
    postalCode: item.postalCode,
    };
    Employee.build(obj).save().then((resp) => {
    /* here how can i perform the insertion in associated address schema
    obj.address(address) won't work */
    obj.address(address).then(() => console.log('created')).catch(err =>
    console.log(err));
    }).catch(err => console.log(err));

    最佳答案

    您将不得不添加两段代码。

    在你的第一个片段中,添加

    employee.hasOne(address);

    在你的第二个,改变
    Employee.build(obj).save().then((resp) => {
    /* here how can i perform the insertion in associated address schema
    obj.address(address) won't work */
    obj.address(address).then(() => console.log('created')).catch(err =>
    console.log(err));
    }).catch(err => console.log(err));


    Employee.build(obj).save().then((employee) => {
    employee.setAddress(address).then(() => console.log('created')).catch(err =>
    console.log(err));
    }).catch(err => console.log(err));

    注意:obj.address(address) 变为 obj.setAddress(address)。

    请让我们知道这是否有效!

    关于javascript - 以一对一的关系插入数据belongsTo Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43512777/

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