2016-08-09 4 views
0

У меня возникла проблема с попыткой переопределить встроенный метод StrongLoop для запроса PUT.StrongLoop overriding PUT встроенный метод

Так в model.js файле я использую:

Model.on('attached', function(){ 
    Model.updateAttributes = function(data, id, cb){ 
     cb(null,'This is a overridden method'); 
    }; 
} 

Но когда я называю конечную точку с PUT/API/v1/модели/1 и полезной нагрузки эта функция не выполняется, но получить встроенный один. Я также пытался использовать другую функцию вместо updateAttributes, но без какого-либо успеха, как, например:

Model.updateAll = function([where], data, cb) { 
    cb(null, 'this is a overriden method'); 
} 

Model.create = function(data, cb) { 
    cb(null, 'this is overriden method'); 
} 

Спасибо за помощь мне.

ответ

3

Вместо переопределения метода, вы можете отключить и подключить новый метод к той же конечной точки следующим образом:

Model.disableRemoteMethodByName('updateAttributes'); 

Model.newMethod = function(cb) { 
    cb(null, 'new message'); 
} 

Model.remoteMethod('newMethod', { 
    returns: { 
    arg: 'msg' 
    }, 
    http: { 
    verb: 'put', 
    path: '/' 
    } 
}); 
+0

У меня было предупреждение о том, что 'disableRemoteMethod' теперь осуждается и теперь' disableRemoteMethodByName' должны быть используемый. Как только я это использовал, мне удалось успешно переопределить встроенный метод. Огромное спасибо! – Trevor

+0

Рад, что все получилось! Я отредактирую свой ответ, чтобы отразить новый API – richardpringle

Смежные вопросы