2017-02-14 11 views
0

У меня есть небольшие проблемы с петлевыми моделями. У меня есть разные модели с удаленным методом. Все методы отвечают собственной функцией обратного вызова. Моя проблема начинается, когда я помещаю объект ошибки в функцию обратного вызова. Например:Loopback настроить удаленный метод error callback

promise() 
     .then(promiseResult => sencondPromise()) 
     .then(promiseResult => cb(null, promiseResult)) 
     .catch(err => cb({"status" : 400, "message" : "Response test"}, null)); 

Есть не проблемы, когда срабатывают положительный обратный вызов. Но при срабатывании отрицательного обратного вызова:

cb({"status" : 400, "message" : "Response test"}, null)); 

Я получаю ответ:

{ 
    "error": { 
    "statusCode": 400, 
    "message": "Response test" 
    } 
} 

Почему поле статуса это изменено на StatusCode?

Заранее спасибо.

+0

Почему это проблема? Что вам нужно делать? –

+0

Для меня этот ответ - проблема, потому что я должен использовать другой тип для ответа на ошибку. Например: '{ "ошибка": { "статус": 400, "сообщение" : "Тест ответ" } }' Можно изменить параметр по умолчанию 'StatusCode' на 'статус'? – Antonio

+1

Это официальная ошибка обратной связи объекта обратной связи с клиентами. Если вы хотите создать собственный объект ошибки, вам нужно создать свой собственный –

ответ

2

Для создания собственного обработчика ошибок:

1) Удалить strong-error-handler из middleware.json

2) Создание config.local.js и поставить под кодом там:

function errorConverter(options){ 
    return function(err, req, res, next){ 
    //check err and create your custom error object 
    var customErr = {}; 
    next(customErr); 
    } 
} 

module.exports = { 
    remoting: { 
    errorHandler: { 
     handler: errorConverter() 
    } 
    } 
};