快速调试模块不工作

Niz*_*ond 19 node.js express

我在Windows上尝试使用调试模块 https://www.npmjs.org/package/debug

我安装了快递发电机

var debug = require('debug')('MyApp');
debug('log'); // I don't see this on console
Run Code Online (Sandbox Code Playgroud)

我试着调试变量

console.log(debug); // I get function disabled() {}
Run Code Online (Sandbox Code Playgroud)

如何启用它?不应该默认启用?

msc*_*dex 28

debug只有在启动脚本时设置适当的环境变量时,才会显示模块创建的调试功能的输出.这就是让您有选择地启用调试输出的原因,这样它就不是显示调试信息的全有或全无的方法.这类似于node.js核心在控制台上显示内部调试信息的方式.

因此,在您的示例中,您需要在shell提示符下执行此操作:DEBUG=MyApp node foo.js,foo.js您的脚本包含在哪里var debug = require('debug')('MyApp');.

对于Windows,您需要set DEBUG=MyApp在命令行上执行,然后执行node foo.js.

  • 您可以先尝试导出变量(`export DEBUG = MyApp`)然后运行`npm start`,它应该具有相同的效果. (2认同)

Jos*_*ush 6

如果你想在你的js代码中设置它,

MYAPP-debug.js

#!/usr/bin/env node

process.env['DEBUG'] = 'myapp:server';
var debug = require('debug')('myapp:server');

// ...
Run Code Online (Sandbox Code Playgroud)
  • 当有一个单独的可执行文件时,我发现它很有用(在Windows上你需要设置node为打开.js文件)