如何在客户端Node.js中获取服务器错误消息

How to get server error message in client side Node.js

本文关键字:获取 服务器 错误 消息 js 客户端 Node      更新时间:2023-09-26

我的服务器在将数据保存到数据库之前进行检查。然后,若服务器无法将数据保存到数据库中,它将发送一条错误消息。

在我的客户端应用程序中,如何获取并显示此错误?

这是我的客户端http请求-

button.addEventListener('click', function(e) {
            var service_ = service.value;

            if (start_pick < end_pick) {
                var jsondata = [{
                    start_time : new Date(start_pick),
                    end_time : new Date(end_pick),
                    service : service_,
                }];
                var xhr = Titanium.Network.createHTTPClient();
                xhr.setTimeout(10000);
                xhr.open("POST", "url");
                xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                xhr.send(JSON.stringify(jsondata));
                xhr.onerror = function(e) {
                     //Ti.API.debug(e.error);
                    // console.log(e.error)
                    Titanium.API.info("Error in connecting to server !!");
                    alert("Error in connecting to server !!");
                };
                xhr.onload = function(e) {
                    //alert(e)
                    if (e.error) {
                        alert(this.responseText);
                    } else  {
                        windowAddDataInvoce.close();
                }

                };

这是我的服务器端"POST"代码

app.post('/collections/:collectionName', function(req, res, next) {
   console.log(req.body[0])
  req.collection.findOne({"service":req.body[0].service}, function(e, result){
      if(result){
        console.log(result); console.log(e)
        res.send({error:"Task already exits"})
      }
      else{
        req.collection.insert(req.body, {}, function(e, results){
        if (e) return next(e)
        res.send(results)
         })
      }
  })
})

您必须发送正确的HTTP状态。在Express中,您将此作为要发送的第一个参数,因此:

CCD_ 1或更新版本CCD_。

对于200以外的其他状态,它应该会触发XHR请求中的错误回调。