Я разрабатываю SOAP-сервер в NodeJ S (v6.9.4), используя библиотеку SOAP. Я должен запросить некоторые данные из базы данных Postgres. Я предпочитаю использовать pg-promise lib.Узла - Бросьте ошибку SOAP на блоке обещает поймать
SAOP услуга реализуется следующим образом:
TestConnection: function (args, cb, headers, req) {
db.any("select * from users where active=$1", [true])
.then(function (data) {
return {};
})
.catch(function (error) {
throw {
Fault: {
faultcode: faultCode,
faultstring: faultString,
detail: {
"ns:FaultInformation": {
"ns:FaultCode": detailedFaultCode,
"ns:FaultText": detailedFaultText
}
},
statusCode: 500
}
};
});
}
В случае возникновения ошибки во время подключения к базе данных/запроса, мне нужно возвращать SOAP Fault. В SOAP lib вы можете сделать это с помощью throwing a new Fault object.
В этом примере я хочу бросить его в блок catch. Я знаю, что это не правильный способ сделать это, и я столкнулся этот вопрос:
UnhandledPromiseRejectionWarning: Необработанное отказ обещание (отказ ID: 3): [объект Object]
Как я могу бросить my Исключение ошибки SOAP в основной служебной функции. Я без особых усилий пробовал решение setTimeout. Является ли обещание хорошим решением для запросов PG?