流星:在服务器端进行调试的好方法有什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (85)

有谁知道调试服务器端代码的好方法吗?我试过启用Node.js调试,然后使用节点检查器,但它不显示任何我的代码。

我最终使用console.log,但这是非常低效的。

我发现以下过程适用于我的Linux机器:

  1. 当你运行Meteor时,它会产生两个进程 process1:/ usr / lib / meteor / bin / node /usr/lib/meteor/app/meteor/meteor.js process2:/ usr / lib / meteor / bin / node /home/paul/codes/bbtest_code/bbtest02/.meteor/local/build/main.js --keepalive
  2. 需要在process2上发送kill -s USR1
  3. 运行node-inspector,你可以看到你的服务器代码

在我第一次尝试时,我修改了/ usr / lib / meteor / bin / meteor中流星启动脚本的最后一行

exec "$DEV_BUNDLE/bin/node" $NODE_DEBUG "$METEOR" "$@"

NODE_DEBUG=--debug meteor在命令提示符下运行。这只会在process1上放上--debug标志,所以我只能在node-inspector上看到meteor文件,并且找不到我的代码。

有人可以在Windows和Mac机器上检查这个吗?

提问于
用户回答回答于

流星应用程序是Node.js应用程序。当使用该meteor [run]命令运行Meteor应用程序时,可以NODE_OPTIONS环境变量配置为node以调试模式启动

NODE_OPTIONS环境变量值的示例:

  • --debug
  • --debug=47977 - 指定一个端口
  • --debug-brk - 打破第一个声明
  • --debug-brk=5858 - 指定一个端口并在第一条语句中断开

如果你从同一个shell运行的export NODE_OPTIONS=--debug所有meteor命令都会继承环境变量。或者,可以启用调试,仅用于一次运行NODE_OPTIONS="--debug=47977" meteor

要进行调试,请node-inspector在不同的shell中运行,然后转到http://localhost:8080/debug?port=<the port you specified in NODE_OPTIONS>,无论node-inspector告诉运行什么。

用户回答回答于

在流星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中添加了一个控制台或shell。它可能会派上用场输出变量并在服务器上运行命令:

meteor shell

扫码关注云+社区

领取腾讯云代金券