Насколько я могу судить, используя Sequelizejs, похоже, что способ сохранения ассоциаций объектов при сохранении самого объекта не представляется возможным.Сохранить объект с ассоциациями в Sequelizejs
Например, у меня есть контакт, который может иметь 1 или более номер телефона. В настоящее время у меня есть что-то подобное для ассоциации:
global.db.Contact.hasMany(global.db.PhoneNumber, {as: 'phoneNumbers'});
Использования отдохнуть конечную точку я хотел бы, чтобы добавить новый объект контакта (с любыми предусмотренными номерами телефонов) и сохранить его в базу данных. Мой объект запроса выглядит примерно так:
{
firstName: "john",
lastName: "Doe",
phoneNumbers: [
{ number: "555-555-5555", type: "home" }
]
}
Сейчас я прохожу этот объект построить:
var contact = Contact.build(req.body);
А потом позвонить сохранить (я знаю, что я мог бы использовать создать вместо сборки/сохранить, но у нас есть Собственная логика в сохранения для отслеживания измененных данных и которые пользователь сделал модификацию)
contact.save();
Это выдает следующее сообщение об ошибке, какой вид имеет смысл.
column "phoneNumbers" of relation "Contacts" does not exist
Звонок в sql пытается установить значение столбца «phoneNumbers», которого не существует. Я, очевидно, не хочу, чтобы это делалось ... Я действительно хотел бы, чтобы навалом создавался каждый номер телефона в массиве с идентификатором создаваемого мной контакта.
Единственным примером, который я нашел, было следующее: https://gist.github.com/sdepold/3040391, и я действительно не хочу этого делать ... Поскольку я исхожу из конечной точки покоя, мне бы хотелось, чтобы это было сделано в целом (я имеют много моделей с ассоциациями). Мне также нужно будет делать эти операции навалом (для импорта контактов из других источников), поэтому я бы предпочел, чтобы это было минимальное количество вызовов sql. Кто-нибудь нашел хороший способ сделать это?
У меня есть тот же вопрос. Вы нашли ответ на это? Я все еще на продолжении 1.7. – optimusPrime
Я так и не нашел элегантного решения. С тех пор я перешел на другие проекты, которые не используют Sequelize. – Nova706