Я создал в своей пользовательской службе ловушку до, которая должна включать запись из модели организации. Отношения между пользователями и организациями
users.belongsToMany(models.organizations,{through: 'users_to_organizations'});
Хук до называется attach-orgnaization.js и выглядит так:
module.exports = (options = {}) => {
return async context => {
const organizations = context.app.services.organizations.Model;
context.params.sequelize = {
include: [{model: organizations}]
};
return context;
};
};
Он установлен в users.hooks.js вот так
....
const attachOrganization = require('../../hooks/attach-organization');
module.exports = {
before: {
all: [],
find: [ authenticate('jwt') ],
get: [authenticate('jwt'), attachOrganization()],
....
Когда я ПОЛУЧАЮ /users?id=1
, я возвращаю пользователя без каких-либо сведений об организации, с которой он связан в users_to_organizations
, которой оказывается организация 3 "тестовая организация".
Я ожидал увидеть в ответе дополнительные поля, связанные с организацией.
Вместо этого я вижу только
{
"total": 1,
"limit": 10,
"skip": 0,
"data": [
{
"id": 1,
"email": "[email protected]",
"googleId": null,
"githubId": null,
"createdAt": "2020-04-29T04:26:49.541Z",
"updatedAt": "2020-04-29T04:26:49.541Z"
}
]
}
Проходя через отладчик (pycharm), я вижу, что код в хуке выполняется.
Я предполагаю, что либо sequelize не видит взаимосвязи, либо перья не добавляют включение в запрос.
Что я могу упустить?
Спасибо!
/users/1
, как и должно быть, возвращает организацию с пользователем. - person Jeremy Brooks   schedule 03.05.2020