Debugging Express调试Express
To see all the internal logs used in Express, set the 要查看Express中使用的所有内部日志,请在启动应用程序时将DEBUG
environment variable to
express:*
when launching your app.DEBUG
环境变量设置为Express:*
。
$ DEBUG=express:* node index.js
On Windows, use the corresponding command.在Windows上,使用相应的命令。
> $env:DEBUG = "express:*"; node index.js
Running this command on the default app generated by the express generator prints the following output:在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
When a request is then made to the app, you will see the logs specified in the Express code:当向应用程序发出请求时,您将看到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
To see the logs only from the router implementation, set the value of 要只查看路由器实现的日志,请将DEBUG
to express:router
. Likewise, to see logs only from the application implementation, set the value of DEBUG
to express:application
, and so on.DEBUG
的值设置为express:router
。同样,要只查看应用程序实现的日志,请将DEBUG
的值设置为express:application
,依此类推。
Applications generated by express
express
生成的应用程序
express
An application generated by the express
command uses the debug
module and its debug namespace is scoped to the name of the application.express
命令生成的应用程序使用debug
模块,其调试命名空间的范围为应用程序的名称。
For example, if you generated the app with 例如,如果您使用$ express sample-app
, you can enable the debug statements with the following command:$ express sample-app
生成了应用程序,则可以使用以下命令启用调试语句:
$ DEBUG=sample-app:* node ./bin/www
You can specify more than one debug namespace by assigning a comma-separated list of names:您可以通过分配逗号分隔的名称列表来指定多个调试命名空间:
$ DEBUG=http,mail,express:* node index.js
Advanced options高级选项
When running through Node.js, you can set a few environment variables that will change the behavior of the debug logging:在运行Node.js时,您可以设置一些环境变量来改变调试日志的行为:
DEBUG |
|
DEBUG_COLORS |
|
DEBUG_DEPTH |
|
DEBUG_FD |
|
DEBUG_SHOW_HIDDEN |
Note备注
The environment variables beginning with 以DEBUG_
end up being
converted into an Options object that gets used with %o
/%O
formatters.DEBUG_
开头的环境变量最终被转换为Options对象,该对象与%o
/%O
格式化程序一起使用。
See the Node.js documentation for 有关完整列表,请参阅Node.js文档中的util.inspect()
for the complete list.util.inspect()
。