如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
当前回答
假设您的计算机上安装了节点检查器(如果没有,只需键入“npm install-g node inspector”),您只需运行:
node-inspector & node --debug-brk scriptFileName.js
然后从命令行将URI粘贴到WebKit(Chrome/Safari)浏览器中。
其他回答
作为Google Chrome开发者工具的一部分发布的V8调试器可用于调试Node.js脚本。可以在Node.js GitHub wiki中找到这一工作原理的详细说明。
其他答案中没有提到的另一个选项是使用名为Rookout的工具。它用于从本地和远程应用程序调试和获取数据。我们在生产环境中使用它将数据聚合到其他服务中,这为我们省去了很多麻烦和硬编码日志记录
Visual Studio 2012或2013的Node.js工具包含调试器。这里的概述指出“Node.js Tools for Visual Studio包括对调试节点应用程序的完全支持”。作为Node.js的新手,但我有.NET背景,我发现这个插件是调试Node.js应用程序的一个好方法。
调试Node.JS应用程序的方法如下:
1) 安装devtool并用它启动应用程序
npm install devtool -g --save
devtool server.js
这将在chrome开发人员模式下打开,因此您可以放置调试器点并进行测试。
2) 使用节点检查器进行调试
node-inspector
3) 使用--debug调试
node --debug app.js
使用IDE
在WebStorm中,您只需打开package.json文件,然后从那里以DEBUG模式运行脚本。只需单击侧面的绿色播放按钮。
带有--检查
如果要在没有IDE的情况下直接从CLI调试应用程序,那么可以运行类似node index.js--inspect的脚本。默认情况下,它将侦听端口5858,允许您连接调试器。或者,您可以使用--inspect=55858指定不同的端口。
带有环境变量
创建一个脚本myInspector.js,如下所示:
let inspector = require("inspector");
// you could explicitly specify a port.
// or alternatively set it to 0 to get any available port.
const port = 0;
inspector.open(port, undefined, true);
// print the url which also reveals the port.
const url = inspector.url()
console.log(url);
设置环境变量NODE_OPTIONS=“--requiremyInspector.js”启动脚本。
事实上,这也是WebStorm注入检查器的方式。美妙之处在于,无论您使用哪种发射器,它都能正常工作。所以你可以跑。。。,节点ts。。。或者甚至使用一些.sh/.bat文件。