Express在內部使用debug模塊來記錄有關路由匹配、正在使用的中間件函數、應用程序模式以及請求—響應週期流的信息。node
debug就像是console.log
的加強版本,但與console.log
不一樣,你沒必要在生產代碼中註釋掉debug日誌,默認狀況下,日誌記錄處於關閉狀態,能夠使用DEBUG
環境變量有條件地打開日誌記錄。
要查看Express中使用的全部內部日誌,請在啓動應用程序時將DEBUG
環境變量設置爲express:*
。express
$ DEBUG=express:* node index.js
在Windows上,使用相應的命令。npm
> set DEBUG=express:* & node index.js
在express生成器生成的默認應用程序上運行此命令將打印如下輸出:json
$ 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代碼中指定的日誌:segmentfault
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
,依此類推。cookie
express命令生成的應用程序也使用debug
模塊,其debug的命名空間的範圍限定爲應用程序的名稱。app
例如,若是你使用$ express sample-app
生成應用程序,則能夠使用如下命令啓用調試語句:函數
$ DEBUG=sample-app:* node ./bin/www
你能夠經過分配以逗號分隔的名稱列表來指定多個調試命名空間:url
$ DEBUG=http,mail,express:* node index.js
有關調試的更多信息,請參閱debug。spa