Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何确保NodeJS在发出错误请求后恢复?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Express 4,Mongoose和MongoDB运行NodeJS应用程序.然后我得到了一个可能的机器人GET请求,响应是@R_419_2480@.通常应用程序继续之后没有问题,但这次它看起来像是冻结或停滞.然应用仍在技术上运行,但我的浏览器中不会加载任何页面.重启后恢复正常.

在testproxy.PHP之后,它只会发出半空行.

我知道有永远的模块会重启您的应用程序,如果它崩溃,不知道它会在这种情况下有用.

node.js – 如何确保NodeJS在发出错误请求后恢复?

编辑:

在我的app.js中(我处于开发模式):

app.use(function(req,res,next) {
  var err = new Error('Not Found');
  err.status = @R_419_2480@;
  next(err);
});

if (app.get('env') === 'development') {
  app.use(function(err,req,next) {
    res.status(err.status || 500);
    res.render('error',{
      message: err.message,error: err
    });
  });
}

它应该打印500错误,但它没有,因为它认为它处理404错误,我不认为下一个(错误)在这种情况下被解雇.

解决方法

通常要修复您确实需要一些前台(例如 nodemon)或后台(例如 forever)守护程序进程,这将使您的服务器崩溃并重新启动您的节点实例.

需要注意的一个重要事项是,一旦处于未定义状态,就立即终止进程.

例如,您可以添加以下中间件:

var serverProcess;

app.use(function(err,next) {
   // regular errors handler here
   // process further middleware if error can't be handled in the correct way
   next(err);       
});

app.use(function(err,next) {      
  // close request connection
  req.connection.end();

  // stop server process
  serverProcess.close(function() {      
    //An unhandled exception means your application is in an undefined state.
    //Blindly resuming means anything Could happen.
    process.exit(1);
  });      
});

serverProcess = http.listen(httpPort,callBACk);

您可以提供任何其他逻辑来终止您的进程,但请记住,应用程序之外的某些@L_618_20@应该处理这种情况并正确地重新启动服务器.

大佬总结

以上是大佬教程为你收集整理的node.js – 如何确保NodeJS在发出错误请求后恢复?全部内容,希望文章能够帮你解决node.js – 如何确保NodeJS在发出错误请求后恢复?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。