快速调试模块不工作

时间:2014-09-30 02:59:54

标签: node.js express

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

我安装了快速发电机

var debug = require('debug')('MyApp');
debug('log'); // I don't see this on console

我尝试调试变量

console.log(debug); // I get function disabled() {}

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

6 个答案:

答案 0 :(得分:25)

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

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

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

答案 1 :(得分:5)

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

<强> MyApp的-debug.js

#!/usr/bin/env node

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

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

答案 2 :(得分:2)

Windows不像Linux和其他人那样设置环境变量。

解决方案是:

set DEBUG=my-application
npm start

答案 3 :(得分:1)

在Windows上设置DEBUG = *或您配置的调试名称,例如对myApp。在我想要调试的所有js文件中,我配置如下面的语句。

var debug = require('debug')('MyApp'); 

需要(&#39;调试&#39)的(&#39; MyApp的&#39); //这非常重要。您应该为debug

配置一些名称 在Windows上执行时

D:>set DEBUG=MyApp

D:>node <your app file>.js 

D:> node foo.js

答案 4 :(得分:1)

我试图解决这个问题,在我看来(至少在我的Windows 10机器上)这样做的方式(至少从非Linux命令行;我使用的是WebStorm构建) -in命令行)包括'&amp;'运营商。所以写下这样的东西:

{{1}}

答案 5 :(得分:0)

我当时也面临着同样的问题。终于我得到了解决方案 在Windows中

设置DEBUG = *&节点index.js

上面的命令必须起作用。但是在我这在VS代码终端上不起作用。但是,如果您在package.json的scripts部分中编写此命令,那么它将起作用。

“开始”:“设置DEBUG = app&node app.js”

现在您只需要写

npm开始

在终端上,您就可以到达