最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

不知道如何在JetBrains WebStorm中开始调试Node.js代码

IT培训 admin 4浏览 0评论

不知道如何在JetBrains WebStorm中开始调试Node.js代码

我正在尝试学习在WebStorm中调试Node.js代码。代码是here的简单“入门”代码:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

我在命令行运行node app.js并访问http://localhost:3000后,上面的代码正常工作。接下来,我尝试按照说明here在JetBrains WebStorm中本地调试它。这是WebStorm中Node.js应用程序的调试配置:

我点击了bug图标,在调试模式下运行Node.js代码。这是输出:

"C:\Program Files (x86)\JetBrains\WebStorm 10.0.3\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=24163 --nolazy --inspect app.js
Debugger listening on ws://127.0.0.1:24163/bffa51bd-74bd-4257-8174-2c8ab3768e17
For help see 

我猜这相当于运行“node app.js”命令。该指令说我需要“执行将触发使用断点执行代码的步骤”。我想这意味着我在浏览器中打开URL“http://localhost:3000”,向app.js正在实施的Web服务器发送请求,我做到了。我在源app.js的每一行都设置了断点,我预计断点应该在源代码的某处出现,但浏览器报告“无法连接”错误,WebStorm中没有发生任何事情 - 没有断点被击中。我检查了说明书,但无法弄清楚我错过了什么。你能帮帮我解决这个问题吗?如果您需要更多信息,请告诉我。非常感谢!

PS:app.js位于... \ test文件夹中。

==编辑:==

PS2:浏览器可以打印“Hello world”只是因为“node app.js”仍在运行。我终止后,浏览器报告“无法连接”。这意味着URL不知道如何连接到WebStorm调试器启动的Web服务器。端口错了吗?

PS3:这是从http://localhost:31496/json/list返回的(每次调试会话中端口号都会改变)。希望它可以帮助排除故障。

description "node.js instance"
devtoolsFrontendUrl "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:31496/0f03cac0-648f-4c13-9cb9-39bb5e3a81a6"
faviconUrl  ".ico"
id  "0f03cac0-648f-4c13-9cb9-39bb5e3a81a6"
title   "app.js"
type    "node"
url "file://E:..._test_app.js"
webSocketDebuggerUrl    "ws://127.0.0.1:31496/0f03cac0-648f-4c13-9cb9-39bb5e3a81a6"
回答如下:

据我所知,您正在使用webStorm 10.它很老,不支持最近Node.js更新中引入的新调试器协议。

请将Node.js降级到v.4.x(至少),或者更好的是将Webstorm升级到2017.3

不知道如何在JetBrains WebStorm中开始调试Node.js代码

我正在尝试学习在WebStorm中调试Node.js代码。代码是here的简单“入门”代码:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

我在命令行运行node app.js并访问http://localhost:3000后,上面的代码正常工作。接下来,我尝试按照说明here在JetBrains WebStorm中本地调试它。这是WebStorm中Node.js应用程序的调试配置:

我点击了bug图标,在调试模式下运行Node.js代码。这是输出:

"C:\Program Files (x86)\JetBrains\WebStorm 10.0.3\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=24163 --nolazy --inspect app.js
Debugger listening on ws://127.0.0.1:24163/bffa51bd-74bd-4257-8174-2c8ab3768e17
For help see 

我猜这相当于运行“node app.js”命令。该指令说我需要“执行将触发使用断点执行代码的步骤”。我想这意味着我在浏览器中打开URL“http://localhost:3000”,向app.js正在实施的Web服务器发送请求,我做到了。我在源app.js的每一行都设置了断点,我预计断点应该在源代码的某处出现,但浏览器报告“无法连接”错误,WebStorm中没有发生任何事情 - 没有断点被击中。我检查了说明书,但无法弄清楚我错过了什么。你能帮帮我解决这个问题吗?如果您需要更多信息,请告诉我。非常感谢!

PS:app.js位于... \ test文件夹中。

==编辑:==

PS2:浏览器可以打印“Hello world”只是因为“node app.js”仍在运行。我终止后,浏览器报告“无法连接”。这意味着URL不知道如何连接到WebStorm调试器启动的Web服务器。端口错了吗?

PS3:这是从http://localhost:31496/json/list返回的(每次调试会话中端口号都会改变)。希望它可以帮助排除故障。

description "node.js instance"
devtoolsFrontendUrl "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:31496/0f03cac0-648f-4c13-9cb9-39bb5e3a81a6"
faviconUrl  ".ico"
id  "0f03cac0-648f-4c13-9cb9-39bb5e3a81a6"
title   "app.js"
type    "node"
url "file://E:..._test_app.js"
webSocketDebuggerUrl    "ws://127.0.0.1:31496/0f03cac0-648f-4c13-9cb9-39bb5e3a81a6"
回答如下:

据我所知,您正在使用webStorm 10.它很老,不支持最近Node.js更新中引入的新调试器协议。

请将Node.js降级到v.4.x(至少),或者更好的是将Webstorm升级到2017.3

发布评论

评论列表 (0)

  1. 暂无评论