欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js express捕獲全局異常的三種方法實例分析

 更新時間:2019年12月27日 08:45:03   作者:雪山飛豬  
這篇文章主要介紹了node.js express捕獲全局異常的三種方法,結(jié)合實例形式簡單分析了node.js express捕獲全局異常的常見操作方法與使用注意事項,需要的朋友可以參考下

本文實例講述了node.js express捕獲全局異常的三種方法。分享給大家供大家參考,具體如下:

場景

express的路由里拋出異常后,全局中間件沒辦法捕獲,需要在所有的路由函數(shù)里寫try catch,這坑爹的邏輯讓人每次都要多寫n行代碼

官方錯誤捕獲中件間代碼如下

app.use(function(err, req, res, next) {
 console.error(err.stack);
 res.status(500).send('Something broke!');
});

測試證明客戶端已經(jīng)卡死,沒有返回結(jié)果

解決方法一

process.on('uncaughtException', function(err) {
 console.log('Caught exception: ' + err);
});

雖然可以捕獲,在命令行有輸出,但是沒辦法給客戶端返回錯誤了

解決方法二

const Layer = require('express/lib/router/layer');
Object.defineProperty(Layer.prototype, 'handle', {
  enumerable: true,
  get() {
    return this.__handle;
  },
  set(fn) {
    if (fn.length === 4) {
      this.__handle = fn;
    } else {
      this.__handle = (req, res, next) =>
        Promise.resolve()
          .then(() => fn(req, res, next))
          .catch(next);
    }
  },
});

解決方法三

安裝express-async-errors,沒錯,已經(jīng)有人受不了express不能捕獲Promise異常搞了個破解包

地址https://github.com/davidbanham/express-async-errors

npm install express-async-errors --save

使用

var express = require('express');
require('express-async-errors');

希望本文所述對大家node.js程序設(shè)計有所幫助。

相關(guān)文章

  • nodejs+mysql實現(xiàn)用戶相關(guān)的增刪改查的詳細操作

    nodejs+mysql實現(xiàn)用戶相關(guān)的增刪改查的詳細操作

    這篇文章主要介紹了nodejs+mysql實現(xiàn)用戶相關(guān)的增刪改查的詳細操作的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Node.js 使用request模塊下載文件的實例

    Node.js 使用request模塊下載文件的實例

    今天小編就為大家分享一篇Node.js 使用request模塊下載文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • nodejs結(jié)合Socket.IO實現(xiàn)websocket即時通訊

    nodejs結(jié)合Socket.IO實現(xiàn)websocket即時通訊

    websocket 是一種網(wǎng)絡(luò)通信協(xié)議,一般用來進行實時通信會使用到。本文主要介紹了nodejs結(jié)合Socket.IO實現(xiàn)websocket即時通訊 ,感興趣的可以了解一下
    2021-11-11
  • 基于socket.io和node.js搭建即時通信系統(tǒng)

    基于socket.io和node.js搭建即時通信系統(tǒng)

    socket.IO是一個websocket庫,包括了客戶端的js和服務(wù)器端的nodejs。官方地址:http://socket.io
    2014-07-07
  • NodeJS中配置請求代理服務(wù)器方式

    NodeJS中配置請求代理服務(wù)器方式

    這篇文章主要介紹了NodeJS中配置請求代理服務(wù)器方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 從零揭秘npm install的黑科技

    從零揭秘npm install的黑科技

    通過npm package manager來安裝和管理包是我們最為常見的方式之一,本文將從淺入深地帶大家剖析一下npm install的執(zhí)行過程,感興趣的可以學習一下
    2023-05-05
  • 利用PM2部署node.js項目的方法教程

    利用PM2部署node.js項目的方法教程

    pm2 = P (rocess) M (anager)2,是可以用于生產(chǎn)環(huán)境的Nodejs的進程管理工具,并且它內(nèi)置一個負載均衡。下面這篇文章主要給大家介紹了利用PM2部署node.js項目的方法教程,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • 用NODE.JS中的流編寫工具是要注意的事項

    用NODE.JS中的流編寫工具是要注意的事項

    Nodejs讀寫流流的傳輸過程默認是以buffer的形式傳輸?shù)?除非你給他設(shè)置其他編碼形式, 小伙伴可以參考下。
    2016-03-03
  • 關(guān)于node-bindings無法在Electron中使用的解決辦法

    關(guān)于node-bindings無法在Electron中使用的解決辦法

    今天小編就為大家分享一篇關(guān)于關(guān)于node-bindings無法在Electron中使用的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Windows系統(tǒng)下使用Sublime搭建nodejs環(huán)境

    Windows系統(tǒng)下使用Sublime搭建nodejs環(huán)境

    最近在研究Nodejs開發(fā),俗話說,工欲善其事,必先利其器,當然要找到一款用著順手的編輯器作為開始。這里我們選擇的是Sublime Text 3,除了漂亮的用戶界面,最吸引我的就是它的插件擴展功能以及跨平臺特性。
    2015-04-04

最新評論