【发布时间】:2017-06-20 03:37:46
【问题描述】:
我正在使用 SOAP 库在 NodeJS (v6.9.4) 中开发 SOAP 服务器。我必须从 Postgres 数据库中请求一些数据。我选择使用 pg-promise 库。
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 库上,您可以通过 throwing a new Fault object 执行此操作。
在这个例子中,我想把它扔到 catch 块中。我知道这不是正确的方法,我正面临这个问题:
UnhandledPromiseRejectionWarning:未处理的承诺拒绝 (拒绝id:3):[object Object]
如何在主服务函数中抛出我的 SOAP 错误异常。我尝试了 setTimeout 解决方案但没有成功。 Promise 是 PG 查询的好解决方案吗?
【问题讨论】:
标签: node.js soap promise throw pg-promise