2016-06-08 1 views
2

я пошел через удаленный крючок documentation, я могу успешно создавать удаленные крюки для методов без дополнительных параметров, как login, который:Как написать удаленный крюк для метода с параметром и отношениями

customer.afterRemote('login', function(ctx, modelInstance, next) { 
     if (ctx.result) { 
      ... 
      next(); 
     } 
     else{ 
      next(); 
     } 
    }); 

сейчас , Как написать удаленный крюк для метода говорят:

GET /customers/{id} 

POST /customers/{id} 

или при размещении связанных объектов как

POST /customers/{id}/contacts 
GET /customers/{id}/contacts 

Я знаю, выполнив следующие действия с POST /customers/{id}/contacts:

customer.beforeRemote('**', function(ctx, user, next) { 
    console.log(ctx.methodString, 'was invoked remotely'); // customers.prototype.save was invoked remotely 
    next(); 
}); 

возвратит имя метода с именем, как:

customer.prototype .__ create__contacts был вызван удаленно

Но я все еще не могу подключить его конкретно, и следующие попытки не имеют успеха, и крючок не достигнут:

customer.beforeRemote('customer.prototype.__create__contacts', function(ctx, user, next) 

customer.beforeRemote(customer.prototype.__create__contacts, function(ctx, user, next) 

ответ

2

Обнаружено! Ответ лежит here

Сначала поймайте имя методы с использованием customer.beforeRemote('**', function(ctx, user, next), как я уже говорил в вопросе, то просто после будет работать:

customer.beforeRemote('*.__create__assets', function(ctx, user, next) { 
     console.log(ctx.methodString, 'was invoked remotely with customers'); // customers.prototype.save was invoked remotely 
     next(); 
    }); 
Смежные вопросы