如何在Meteor应用程序中调试服务器端代码

9

我一直在努力调试我的应用程序中的服务器端代码。对于客户端来说,Chrome或Firefox浏览器中的调试器非常好用,但对于服务器来说则更加复杂。


您也可以使用WebStorm IDE来调试服务器端。 - Dan Dascalescu
在 Meteor 1.1.0.2 上,meteor debug 就解决了问题。 - AlikElzin-kilaka
4个回答

10

以下是我如何在Meteor 0.5.6上进行调试的方法:

无需再修改run.js文件

安装node-inspector https://github.com/dannycoates/node-inspector

创建环境变量 export NODE_OPTIONS='--debug'

运行meteormrt命令。应该会提示您类似于“调试程序正在端口5858上侦听”的消息。

一旦调试器开始侦听,您就可以启动node-inspector,并将浏览器指向Visit http://127.0.0.1:8080/debug?port=5858

我非常享受这个过程 :-)

对于Meteor 1.2.x及更高版本,一切都已经打包好了。只需运行meteor debug并连接到提供的URL即可。


Meteor的最新版本(0.7.0.1)在最新版本的node-inspector中不再在断点处停止。原因尚不清楚(https://github.com/meteor/meteor/issues/1411),但是可以通过在代码中放置调试器语句来解决问题 :-( - Micha Roon
顺便提一下,如果你正在使用IntelliJ,你可以按照Gorb博士的建议进行操作,但是只需为“Node.js Remote Debug”添加一个运行配置;将服务器设置为127.0.0.1(如果您正在本地调试),并将端口设置为meteor命令报告的端口,通常为5858。这在0.8和IntelliJ 13中非常有效。 - occasl
1
在Linux Mint上,使用Chrome时,我无法使用提供的IP地址为0.0.0.0的URL。 Chrome一直在进行Google搜索。我建议您使用node-inspector给出的链接,通常会是http://127.0.0.1:8080/debug?port=5858。 - jazeee
我遇到了错误 Meteor cannot currently handle quoted NODE_OPTIONS。我不确定需要做什么!! - SharpCoder
如果您正在使用Meteor 1.2.x,那么只需运行meteor debug即可启动应用程序。 - Micha Roon

4
这个视频中,Slava Kim解释了如何在服务器端调试Meteor应用程序。 首先,您需要安装node-inspector。
npm install -g node-inspector

然后使用特定变量运行Meteor应用程序

env NODE_OPTIONS="--debug" meteor

在新的终端标签页中运行以下命令来打开node-inspector:

node-inspector

复制并粘贴来自Chrome上node-inspector的url,您将找到所有服务器端代码以设置断点进行调试。 重要提示:在(无域)文件夹中设置项目文件的断点。


0

从Meteor 1.1.0.2开始,meteor debug可以在Meteor 1.1.0.2上完成。

这里查看更多信息。


0

我同时使用Node-inspector和Loggly来调试我的Meteor服务器。

Node-inspector非常棒,但是如果有测试人员告诉我有问题,或者在生产环境中出现问题,它无法告诉我他们具体做了什么,或者他们所处的硬件/网络条件。然而,日志记录可以告诉你导致问题的步骤和条件,从而提供更好的信息进行调试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接