Javascript 在以下一对一关系中插入数据以继续

Javascript 在以下一对一关系中插入数据以继续,javascript,sql,sequelize.js,Javascript,Sql,Sequelize.js,我有两个模式 地址 雇员 每个员工都有一个地址,所以我的模式如下 employee.js 下面是插入逻辑,它不工作,如何执行关联插入 Item是数组中的一个对象,我在数组中执行了forEach const obj = { empId: item.empId, name: item.name, joinDateTime: item.joinDateTime, }; const address = { street: item.street, city:

我有两个模式

  • 地址
  • 雇员
每个员工都有一个地址,所以我的模式如下

employee.js

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

Item是数组中的一个对象,我在数组中执行了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));

注:对象地址(address)变为对象设置地址(address)


请让我们知道这是否有效

它抛出一个错误
TypeError:obj.setAddress(address)
,因为obj只是一个基本类型而不是一个实例?哦,是的,你是对的。在
obj
中,现在是新创建的
employee
,它被传递给save方法的then函数。
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));