Sequelizejs: нет автоматической генерации методов из ассоциаций

Я пытаюсь настроить ассоциацию m:n, используя перья js с секвенированием. Я следую этой 'инструкции', но должен приспосабливаться к обновлениям. в это время.

Мой хук, чтобы связать уже созданного пользователя с уже созданным элементом:

module.exports = function (options = {}) { 
  return function (hook) {
    hook.app.service('users')
      .get(hook.data[0].user_id)
      .then(users => {
        hook.app.service('items')
          .find(hook.data[0].item_id)
          .then(benches => items.addMyusers(users));
      });

    return Promise.resolve(hook);
  };
};

Я получил:

error: Unhandled Rejection at: Promise  Promise {
  <rejected> TypeError: Cannot read property 'addMyusers' of undefined

В соответствии с определением моей пользовательской модели я устанавливаю ассоциацию с:

  users.associate = function (models) {
    users.belongsToMany(models.items, {
      through: {
        model: 'favorites-items',
        unique: false
      },
      foreignKey: 'item_id',
      as: 'myitems',
      constraints: false
    });
  };

в соответствии с определением модели элемента:

  items.associate = function (models) { 
    items.belongsToMany(models.users, {
      through: {
        model: 'favorites-items',
        unique: false
      },
      as: 'myusers',
      foreignKey: 'user_id',
      constraints: false
    });
  };

Почему addMyusers не существует? Подобные методы должны генерироваться автоматически при создании ассоциации?

Как указано в последовательных документах:

Это добавит методы getUsers, setUsers, addUser, addUsers в Project и getProjects, setProjects, addProject и addProjects в User.


person musicformellons    schedule 30.11.2017    source источник


Ответы (1)


Это вообще не проблема, связанная с сиквелизацией.

Внимательно посмотрите на свое сообщение об ошибке:

TypeError: невозможно прочитать свойство addMyusers неопределенного

Дело не в том, что sequenceize не добавил метод, а в том, что ваша переменная items не определена, и, конечно же, undefined не имеет метода addMyusers. Из кода, который вы разместили, items нигде в вашем коде не установлено, поэтому он действительно не определен.

person Pedro A    schedule 24.03.2018