Как передать параметры для продолжения afterBulkUpdate - PullRequest
0 голосов
/ 16 июня 2020

Я обновляю пользователя, но после этого мне нужно также обновить таблицу user_profile. Таблица пользователей обновляется, но в перехвате afterBulkUpdate параметры не определены и, следовательно, не могут быть деструктурированы, и выдает ошибку. Как я могу передать параметры при использовании Model.update и получить к ним доступ в параметрах afterBulkUpdate. Я знаю, что неправильно передаю параметры, как я могу сделать это правильно. Вот как я это делаю

User.update({ password : newPassword, phone_number: phoneNumber 
   }, {  where: { username } } , { userOptions: { avatar, nationality, username} } );

Затем в afterBulkUpdate я хочу обновить таблицу профиля пользователя.

  User.afterBulkUpdate(async (user, options) => {
    console.log("user is: ", user); // user is not null
    console.log("options are: ", options); // options is undefined
    const { userOptions} = options;
    const { avatar, nationality, username} = userOptions;

    UserProfile.update({ avatar, nationality} ,{ where: { username }  });

  });

1 Ответ

0 голосов
/ 16 июня 2020

Посмотрев на этот вопрос . Я сделал свой собственный хак для решения проблемы, он работает, я не знаю, рекомендуется ли он или возникнут проблемы в будущем, пожалуйста, посоветуйте на всякий случай.

Я изменил обновление на

User.update({ password : newPassword, phone_number: phoneNumber 
   }, {  where: { username } , userOptions: { avatar, nationality, username} }  );

userOptions и предложение where передаются в ловушку как объекты в одном объекте, поэтому я изменил afterBulkCreate на

User.afterBulkUpdate(async (user, options) => {
    const { userOptions } = user;
    const { avatar, nationality, username} = userOptions;
    UserProfile.update({ avatar, nationality} ,{ where: { username }  });
  });
...