Как работает request.context в Parse Cloud Code? - PullRequest
1 голос
/ 29 мая 2020

Еще в обновлении Parse Server 3.0 был добавлен request.context для передачи данных между BeforeSave и AfterSave, как описано здесь:

https://docs.parseplatform.org/cloudcode/guide/#using -request-context

Однако у меня возникли некоторые проблемы с пониманием того, как и когда Parse запускает этот код в примере.

const beforeSave = function beforeSave(request) {
  const { object: role } = request;
  // Get users that will be added to the users relation.
  const usersOp = role.op('users');
  if (usersOp && usersOp.relationsToAdd.length > 0) {
    // add the users being added to the request context
    request.context = { buyers: usersOp.relationsToAdd };
  }
};

const afterSave = function afterSave(request) {
  const { object: role, context } = request;
  if (context && context.buyers) {
    const purchasedItem = getItemFromRole(role);
    const promises = context.buyers.map(emailBuyer.bind(null, purchasedItem));
    item.increment('orderCount', context.buyers.length);
    promises.push(item.save(null, { useMasterKey: true }));
    Promise.all(promises).catch(request.log.error.bind(request.log));
  }
};

в других примерах функции облачного кода запускаются через Parse.Cloud.beforeSave или Parse.Cloud.afterSave. В приведенном выше примере функции beforeSave присвоена

const beforeSave.

Почему это было сделано и должно ли это быть размещено внутри main. js верхнего уровня или внутри другой функции?

...