2014-11-23 3 views
0

У меня есть два вопроса относительно метода «beforeRemote» из loopback-Возвращение из beforeRemote

  1. Как разжиться модельных методов внутри метода beforeRemote? Я имею в виду внутри beforeRemote. Я хочу вызвать (скажем) метод «upsert» модели.
  2. Как вернуть вызов от beforeRemote? По возвращении я имею в виду вместо того, чтобы использовать метод, вызванный целевым вызовом, выполнение будет возвращаться из метода beforeRemote.

Мой код -

Installation.beforeRemote("create", function (context, result, next) { 
    var data = context.req.body; 
    console.log("ImEI" + data.imei); 
    data.vendor = "jahid"; 

    var self = this; 
    var filter = {where: {imei: data.imei}}; 

    //the self here point to global object. but i want self to point to model 
    self.findOne(filter, function (err, result) { 
     if (result) { 
      data.id = result.id; 
      self.upsert(data, function(err, result){ 
      if(err){ 
       next(err); 
      } else if(result) { 
     //here i want to send a valid response back to client with 200 and body as my model. 
       next(data); 
      } 
     }); 
     return; 
    } 
    next(); 
}); 
}); 

ответ

0
  1. Вы имеете доступ к модели установки из декларации module.exports:

    module.exports = function(Installation) { 
        ... 
        Installation.upsert... 
        ... 
    } 
    
  2. У вас есть доступ к объекту ответа от context объект. Так что вы могли бы просто ответить с чем-то вроде context.res.send('hello world') и не звонить next().

+0

Я попробую этот вариант и вернусь с обратной связью. Большое спасибо за помощь. –