除錯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。