如何使用Node的调试模块(Windows)?

问题描述 投票:0回答:7

我试图弄清楚我的会话有什么问题(使用 express-session),我发现它使用了 debug 模块。但是,我似乎无法启用调试消息。它说,需要通过

DEBUG
环境变量启用调试,但我似乎无法运行它。

README里的教程有这张图:

enter image description here

在 Windows 下,我得到“

DEBUG
不是命令行的命令”。

所以我尝试使用以下方法显式设置环境变量:

process.env.DEBUG = "*";

还是什么都没有。

我做错了什么?

windows node.js debugging module
7个回答
27
投票

正如 Traveling Tech Guy 在评论中建议的那样,在 Windows 命令提示符下,正确的语法是:

set DEBUG=* & npm start

显然,您可以将

npm start
替换为启动 Node.js 应用程序所需的任何命令。请务必使用
set
命令,不要忘记该命令与启动 Node.js 应用程序的命令之间的
&


16
投票

如果您习惯使用 powershell,我建议您在 package.json 中进行此设置,然后您只需运行

npm start
这样就不用每次都输入所有内容了。

"scripts": {
    "start": "@powershell $env:DEBUG='*,-express:router*' ; node app.js"
},

4
投票

在节点应用程序中使用 npm 安装调试包

npm install debug

打开一个powershell然后

$Env:DEBUG="name_to_call"

node path_to_js_to_execute.js

在你的 pgm 里面

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

2
投票

首先你需要使用安装调试模块

"npm install debug --save"

你会看到下面的通道已经被添加到你的 package.json 中(所有的 npm 模块都被计入你的项目)

然后你需要添加这个以将模块导入到你想要运行调试的文件中

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

现在我们只需要输入我们想写的信息,例如你好

var debug = require('debug')('name_to_call');
debug('Hello');

(尝试将上面的代码直接粘贴到文件中)

现在我们只需要使用 DEBUG 启动 Windows 服务器,为此我们将使用

npm
cross-env
这将使跨任何操作系统(平台不可知)设置 ENV 变量变得更容易

npm install cross-env

更改

package.json
并在
scripts
部分下添加以下内容

"start-server": "cross-env DEBUG=name_to_call node server.js"

现在启动服务器只需在命令行中运行以下命令(从您的项目所在的目录)就可以了

npm run start-server


1
投票

Babun windows shell 中,我运行,

npm

npm install debug --save

巴文

DEBUG=http node app

app.js

var app = express();
var debug = require('debug')('http');
var http = require('http').Server(app);

var server = http.listen(app.get('port'), function() {
    debug('listening on port ' + server.address().port);
});

对我来说就像一个魅力。


0
投票

Windows命令: 设置 DEBUG=* & 节点 ./app.js

电源外壳: $env:DEBUG='*';节点应用程序.js

终端/WSL(Ubuntu): DEBUG=* 节点 ./app.js


0
投票

前面提供了各种设置环境变量的答案,我发现我的 Windows 11 机器没有任何作用。所以,我试着用谷歌搜索如何使用命令提示符在 Windows 中设置环境变量,我发现,使用下面的命令可以在 Windows 机器中设置环境变量。

setx NODE_DEBUG = 'http' 

以上命令将在节点中为 http 启用调试模式,您可以在 Windows 环境变量设置中检查。 如果要为所有节点运行启用调试模式,可以使用 * 而不是 http。 要更新这个 NODE_DEBUG 值,我们需要这样写

setx NODE_DEBUG ''

但是在调试模式下也会出现安全警告,如下所示。因此,请确保不要将其保留在生产站点中。

(node:28928) Warning: Setting the NODE_DEBUG environment variable to 'http' can expose sensitive data (such as passwords, tokens and authentication headers) in the resulting log.
© www.soinside.com 2019 - 2024. All rights reserved.