每当 nodejs 的服务器端发生错误时,如何在 UI 中发送错误警报?

问题描述

我正在通过 AJAX 向服务器发送请求。 我想在发生错误时向 AJAX 回调发送响应。 因此,对于回调函数,我在 error 块中编写了此返回代码res.end('{"msg" : "Some error occurred","status" : 700}');

对于状态,我在带有此消息的 UI 上抛出一个 alert

但是每当代码失败或发生某些错误时,控制台都会在控制台中写入控制台错误,但服务器也会停止并且无法再次重新加载页面,我必须再次运行 npm start。但它不会将 msg 和状态返回给 AJAX 调用作为最终响应。

如何处理代码来实现这一点?

意味着每当发生任何错误时,我都想在 UI 上发送 错误 警报,而不是完全阻止服务器和网页。

 router.route('/addTasks-approve').get(function(req,res) {

                      User.updateMany({'Addtasks.commonID':req.query.id},{$set: {"Addtasks.$.width" :'250px',"Addtasks.$.height" :'32px',"Addtasks.$.background" :'linear-gradient(45deg,#0f3443,#34e89e)',"Addtasks.$.border_radius" :'10px / 5px',"Addtasks.$.status" :req.query.text}},function (error,success) {
                              if (!error) {
                                console.log("Approved color set!");
                                User.findOne({tag:'Admin','Addtasks.commonID':req.query.id},dataAdmin) {
                                      if (error) {
                                          console.log("error = "+ error);
                                          res.end('{"msg" : "Some error occurred","status" : 700}');
                                      }
                                      else {
                                        dataAdmin.Addtasks.forEach(element => {
                                          if(element.commonID == req.query.id)
                                          {
                                     User.findOneAndUpdate({tag:'Client',{$push: {'Addtasks.$.Bigpaths4Clients':{$each : element.Bigpaths4Clients}},$set: {"Addtasks.$.background" :'linear-gradient(45deg,#1E6305,#BDFF00)',"Addtasks.$.status" :'Done'}},data) {
                                              if (error) {
                                                console.log("error = "+ error);
                                                res.end('{"msg" : "Unable to add the Task","status" : 700}');
                                              }
                                              else {
                                                console.log("Addtasks added to Client's dashboard succesfully");
                                                sendMails2Client(data.email,element.topic,'In Progress','Done');
                                                sendMails2User(dataAdmin.email,'Done','Approved');
                                                User.findOne({tag:'Admin',dataWriter) {
                                                      if (error) {
                                                          console.log("error = "+ error);
                                                          res.end('{"msg" : "Some error occurred","status" : 700}');
                                                      }
                                                      else {
                                                        sendMails2User(dataWriter.email,'Approved');
                                                        res.end('{"success" : "success","status" : 200}');
                                                      }
                                                    })
                                              }
                                      })
                                    }
                                  });
                                }
                              });
                              }
                              else {
                                res.end('{"msg" : "Unable to set the status and color for Approved","status" : 700}');
                              }
                            });
                                                  });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)