Вложенные объекты в моделях Sails JS - PullRequest
0 голосов
/ 03 марта 2020

как поместить полный объект workstation в другой объект userWorkstationSchedule?

код:

Рабочая станция. js

module.exports = {
    tableName: 'workstation',
    attributes: {
        name: { type: 'string', required: true, maxLength: 100, columnType: 'VARCHAR(100)' },

        company: { model: 'company', required: true },

        workDates: { collection: 'workstationSchedule', via: 'workstation'},
        reservedDates: {collection: 'userWorkstationSchedule', via: 'workstation'},

      }
}

reservedDates атрибут получает данные из объекта userWorkstationSchedule UserWorkstationSchedule. js

module.exports = {
    tableName: 'user_workstation_schedule',
    attributes: {
          presenceSchedules: { collection: 'presenceschedule', via: 'userWorkstationSchedule' },
          workstation: {collection: 'workstation', via: 'reservedDates'},
  }
}

1 Ответ

0 голосов
/ 05 марта 2020

Вам не нужно ставить «полный объект», он уже в игре, и это сила парусов. js и любого ORM.

Обработка данных производится асинхронно и «лениво». (Подробнее о LazyLoading )

ORM загружает только то, что абсолютно необходимо, а не все связанные ассоциации.

In Sails. js, когда вам нужно конкретные данные, вам необходимо заполнить их с помощью метода .populate ().

var userWorkstationSchedule = await UserWorkstationSchedule.find().populate('workstation');

Подробнее о заполнении вы можете узнать в Паруса. JS Документация

...