Запрос, связанный с JS, возвращает пустой массив

#javascript #sql #node.js #objection.js

Вопрос:

я пытаюсь установить отношения «многие ко многим» в Objection.js. У меня есть таблица «организации», таблица «пользователи» и таблица «организации-пользователи» моста. Я хочу собрать всех пользователей внутри организации.

Модель Организации:

 const { Model } = require('objection');

const Vehicle = require('./vehicle');
const User = require('./user');

class OrganizationModel extends Model {

static tableName = "organizations"

static relationMappings = {


  vehicles: {
    relation: Model.HasManyRelation,
    modelClass: Vehicle,
    join: {
      from: 'organizations.id',
      to: 'vehicles.organization_id'
    }
  },

  users: {
    relation: Model.ManyToManyRelation,
    modelClass: User,
    join : {
      from: 'organizations.id',
      through: {
        from: 'organizations_users.organization_id',
        to: 'organizations_users.user_id'
      },
      to: 'users.id'
    }
  }
}
}

module.exports = OrganizationModel;
 

Обработчик запросов:

 app.get("/organizations/users", async (req, res) => {
    
    const users = await OrganizationModel.relatedQuery('users').for('*')
        .then(users => {
            res.status(200).json(users);
        }).catch(error => {
            console.error(error.message);
            res.status(500);
        })
});
 

Я дважды проверил названия таблиц, и они наверняка верны. API всегда возвращает пустой массив, независимо от того, что я предоставляю в ‘.for()’

Исправлено, оказывается, это был порядок запросов в моем API. Express последовательно считывает запросы, поэтому мой звонок перехватывал другой запрос. Если у вас возникла аналогичная проблема, попробуйте переместить обработчик запроса ниже в коде.