Express 文件(除錯)

博弈發表於2019-02-16

除錯Express

Express在內部使用debug模組來記錄有關路由匹配、正在使用的中介軟體函式、應用程式模式以及請求—響應週期流的資訊。

debug就像是console.log的增強版本,但與console.log不同,你不必在生產程式碼中註釋掉debug日誌,預設情況下,日誌記錄處於關閉狀態,可以使用DEBUG環境變數有條件地開啟日誌記錄。

要檢視Express中使用的所有內部日誌,請在啟動應用程式時將DEBUG環境變數設定為express:*

$ DEBUG=express:* node index.js

在Windows上,使用相應的命令。

> set DEBUG=express:* & node index.js

express生成器生成的預設應用程式上執行此命令將列印以下輸出:

$ DEBUG=express:* node ./bin/www
  express:router:route new / +0ms
  express:router:layer new / +1ms
  express:router:route get / +1ms
  express:router:layer new / +0ms
  express:router:route new / +1ms
  express:router:layer new / +0ms
  express:router:route get / +0ms
  express:router:layer new / +0ms
  express:application compile etag weak +1ms
  express:application compile query parser extended +0ms
  express:application compile trust proxy false +0ms
  express:application booting in development mode +1ms
  express:router use / query +0ms
  express:router:layer new / +0ms
  express:router use / expressInit +0ms
  express:router:layer new / +0ms
  express:router use / favicon +1ms
  express:router:layer new / +0ms
  express:router use / logger +0ms
  express:router:layer new / +0ms
  express:router use / jsonParser +0ms
  express:router:layer new / +1ms
  express:router use / urlencodedParser +0ms
  express:router:layer new / +0ms
  express:router use / cookieParser +0ms
  express:router:layer new / +0ms
  express:router use / stylus +90ms
  express:router:layer new / +0ms
  express:router use / serveStatic +0ms
  express:router:layer new / +0ms
  express:router use / router +0ms
  express:router:layer new / +1ms
  express:router use /users router +0ms
  express:router:layer new /users +0ms
  express:router use / <anonymous> +0ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +0ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +0ms
  express:router:layer new / +0ms

當對應用程式發出請求時,你將看到Express程式碼中指定的日誌:

  express:router dispatching GET / +4h
  express:router query  : / +2ms
  express:router expressInit  : / +0ms
  express:router favicon  : / +0ms
  express:router logger  : / +1ms
  express:router jsonParser  : / +0ms
  express:router urlencodedParser  : / +1ms
  express:router cookieParser  : / +0ms
  express:router stylus  : / +0ms
  express:router serveStatic  : / +2ms
  express:router router  : / +2ms
  express:router dispatching GET / +1ms
  express:view lookup "index.pug" +338ms
  express:view stat "/projects/example/views/index.pug" +0ms
  express:view render "/projects/example/views/index.pug" +1ms

要僅從路由器實現中檢視日誌,請將DEBUG的值設定為express:router,同樣,要僅檢視來自應用程式實現的日誌,請將DEBUG的值設定為express:application,依此類推。

express生成的應用程式

express命令生成的應用程式也使用debug模組,其debug的名稱空間的範圍限定為應用程式的名稱。

例如,如果你使用$ express sample-app生成應用程式,則可以使用以下命令啟用除錯語句:

$ DEBUG=sample-app:* node ./bin/www

你可以通過分配以逗號分隔的名稱列表來指定多個除錯名稱空間:

$ DEBUG=http,mail,express:* node index.js

有關除錯的更多資訊,請參閱debug


上一篇:錯誤處理

下一篇:在代理後面執行Express

相關文章