从http.get请求中检索错误消息

时间:2019-02-18 20:14:35

标签: node.js sql-server typescript express error-handling

我正在使用Express.js和msnodesqlv8运行语句。

捕获的错误具有正确的元素,可以冒泡到控制器,但对于 Error 部分,该错误不能正确传播。

返回的错误如下:

  

{错误:[Microsoft] [SQL Server Native Client 11.0] [SQL Server]   INSERT语句与CHECK约束冲突   “ MyConstraint”。发生冲突   数据库“ Mydatabase”,表“ dbo.MyTable”。   sqlstate:“ 23000”,代码:547}

但是状态代码为500的返回给控制器的错误没有被正确使用,并且我只能访问sqlstate和代码。这是因为来自SQL Server的错误消息未正确格式化以进行解析吗?

如何检索消息的错误部分?

var sql = require('msnodesqlv8');

app.get('/myroute/*', function (req, res) {

var queryData = url.parse(req.url, true).query;
var param1= queryData.param1;

res.header("Access-Control-Allow-Origin", allowOriginUrl)
let txtFile =  "myFile.sql"

let query = fs.readFileSync(txtFile,'utf8');
query = query.replace('?param1',param1) 

sql.query(regroupement_conn, query, (err, rows) => {
    if(err)
    {
        //throw err;
        console.log(err)
        result = res.status(500).send({
             message : err
          })
    }
    else
    {
        result = res.send(rows);
    }
}); 

})

我正在消耗控制器中的错误

return  this.http.get<any>(`${environment.apiUrl}/myroute/` ,{params}).pipe(

catchError((err) => {
    throw  err;
})
)

0 个答案:

没有答案