Debugging Meteor:服务器端调试
有人知道调试服务器端代码的好方法吗? 我尝试启用Node.js调试,然后使用Node inspector,但它没有显示我的任何代码 我最终使用了console.log,但这非常低效 更新:我发现以下过程在我的Linux机器上运行:Debugging Meteor:服务器端调试,debugging,meteor,server-side,Debugging,Meteor,Server Side,有人知道调试服务器端代码的好方法吗? 我尝试启用Node.js调试,然后使用Node inspector,但它没有显示我的任何代码 我最终使用了console.log,但这非常低效 更新:我发现以下过程在我的Linux机器上运行: 当您运行Meteor时,它将生成两个进程 进程1:/usr/lib/meteor/bin/node/usr/lib/meteor/app/meteor/meteor.js 进程2:/usr/lib/meteor/bin/node/home/paul/codes/bbt
exec "$DEV_BUNDLE/bin/node" $NODE_DEBUG "$METEOR" "$@"
然后在命令提示符下运行NODE\u DEBUG=--DEBUG meteor
。这只在process1上放置了--debug标志,所以我只能在node inspector上看到meteor文件,无法找到我的代码
有人能在Windows和Mac计算机上检查一下吗?我不知道为什么它对您不起作用。
我可以通过在控制台(Mac)上执行以下步骤来使用它
上面提到了上述步骤。它用于将节点检查器附加到正在运行的节点进程。要在调试模式下启动node.js,我是这样做的:
nodeOptions.push(path.join(options.bundlePath, 'main.js'));
加
当您在meteor应用程序文件夹中启动meteor时,您将在控制台中看到“调试器侦听端口5858”。meteor应用程序是Node.js应用程序。使用
Meteor[run]
命令运行Meteor应用程序时,您可以
NODE\u选项的示例
环境变量值:
--调试
-指定端口--debug=47977
-在第一条语句中中断--debug brk
-在第一条语句中指定端口和中断--debug brk=5858
export NODE\u OPTIONS=--debug
,则从同一shell运行的所有meteor
命令都将继承环境变量。或者,您可以使用NODE_OPTIONS=“--debug=47977”meteor
,仅为一次运行启用调试
要进行调试,请在不同的shell中运行
节点检查器
,然后转到http://localhost:8080/debug?port=
,不管节点检查器告诉您运行什么。在Meteor 0.5.4中,这变得容易多了:
首先从终端运行以下命令:
npm install -g node-inspector
node-inspector &
export NODE_OPTIONS='--debug-brk'
meteor
然后打开http://localhost:8080
在浏览器中查看节点检查器控制台
更新
自从Meteor 1.0以来,您只需键入
meteor debug
这实际上是上述命令的快捷方式,然后在浏览器中启动节点检查器,如前所述
更新
在Meteor 1.0.2中添加了控制台或外壳。在服务器上输出变量和运行命令可能很方便:
meteor shell
我编写了一个名为meteor inspector的小meteor包,它简化了节点检查器调试meteor应用程序的使用。它在内部管理node inspector的生命周期,因此,在某些文件发生更改后,用户无需手动重新启动调试器 有关更多详细信息和具体使用说明,请参阅。,这是一款为开源开发人员免费提供的强大IDE,使调试服务器端变得更加容易
我已经在Windows上对其进行了测试,配置非常简单-请参阅。解决我问题的检查器是meteor服务器控制台。以下是我安装它所遵循的过程:
server eval
:
mrt add server-eval
对于Meteor 1.0:
meteor add gandev:server-eval
crx
Chrome扩展名文件crx
文件拖动到扩展页面与node inspector相比,我的输出更清晰。如果您喜欢使用,可以调用
node\u OPTIONS='--debug'meteor
,然后(在不同的shell上)节点调试localhost:5858
从Meteor 1.0.2开始,服务器端调试的最佳方式可能是直接通过新的内置shell:运行server runMeteor shell
。更多信息请点击此处:关于Meteor 1.0.3.1(更新至Sergey.Simonchik答案)
使用meteor run--debug port=
将浏览器指向http://localhost:6222/debug?port=
其中,
是您指定的端口
在代码中添加调试器代码>要设置断点的位置
取决于调试器的位置调用code>时,它将在客户端或服务器浏览器窗口上中断,并打开inspector。我喜欢通过GUI设置断点。这样我就不必记得从我的应用程序中删除任何调试代码
这就是我如何为我的本地meteor应用程序在服务器端实现的:
meteor debug
这样启动你的应用程序
将Chrome打开到它提供给您的地址。您可能需要安装(它现在可能与Meteor捆绑在一起?不确定)
你会看到一些奇怪的内部meteor代码(不是你编写的应用程序代码)按播放运行代码。这段代码只是启动服务器以侦听连接
只有在按下play键后,您才能继续播放
meteor add gandev:server-eval
meteor debug