美文网首页
nodejs express异常捕获

nodejs express异常捕获

作者: Cesium中文网 | 来源:发表于2018-08-29 14:48 被阅读0次

    参考链接:
    http://blog.coinidea.com/web%E5%BC%80%E5%8F%91/nodejs-1131.html

    由于nodejs是非阻塞单进程单线程的,一旦nodejs抛出异常,整个服务就会停掉。服务将会非常不稳定。
    解决方法:

    1. 使程序鲁棒,在有可能出现异常的地方,全部使用try { } catch(){ }进行嵌套。
    2. express作为nodejs比较常用的框架,其实nodejs自己也有一定的异常错误捕获机制
    // Express' errorHandler
    function errorHandler(err, req, res, next) {
    console.error(err.stack);
    }
    app.use(errorHandler);
    
    1. 使用domain模块,先下载domain, “npm install domain”
    //Domain捕获异常
    app.use(function(req, res, next) {
    var domain = createDomain();
    domain.on('error', function(err) {
    // alternative: next(err)
    console.log(err.stack);
    res.statusCode = 500;
    res.end(err.message + '\n');
    domain.dispose();
    });
    domain.enter();
    next();
    });
    
    1. 使用forever启动app.js,forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。
    forever start app.js
    

    参考链接:
    http://blog.coinidea.com/web%E5%BC%80%E5%8F%91/nodejs-1131.html

    相关文章

      网友评论

          本文标题:nodejs express异常捕获

          本文链接:https://www.haomeiwen.com/subject/wgtkwftx.html