2017-04-20 4 views
2

I持つ二つのスキーマ挿入データbelongsToのSequelize

  • アドレス
  • 各従業員がそうつのアドレスを有することになる

従業員は、鉱山スキーマが

以下の通りであります

employee.js

以下は210

がInsertationロジックである、それは動作しません、どのように私は協会の挿入を行うことができます

項目は、私はあなたが持っているだろう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)); 

答えて

0

を実行した配列から、オブジェクトであります2つのコードを追加します。あなたの最初のスニペットで

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)); 

への注意を変更する、2番目の1で

employee.hasOne(address); 

を追加します。obj.address(アドレス)obj.setAddressなり、 (住所)。

これが機能するかどうかお知らせください。

+0

objはインスタンスではなくプリミティブ型なので、エラー 'TypeError:obj.setAddress(address) 'がスローされますか? –

+0

ああ、そうだよ。 'obj'では新しく作成された' employee'がsaveメソッドのthen-functionに渡されます。 –