use*_*682 78 debugging server-side meteor
有谁知道调试服务器端代码的好方法?我尝试启用Node.js调试然后使用node-inspector但它没有显示我的任何代码.
我最终使用console.log,但效率非常低.
更新:我发现以下过程适用于我的Linux机器:
当你运行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
你需要在process2上发送kill -s USR1
运行node-inspector,您可以看到您的服务器代码
在我第一次尝试时,我修改/ usr/lib/meteor/bin/meteor中meteor启动脚本的最后一行
exec "$DEV_BUNDLE/bin/node" $NODE_DEBUG "$METEOR" "$@"
Run Code Online (Sandbox Code Playgroud)
并NODE_DEBUG=--debug meteor在命令提示符下运行.这只在process1上放了--debug标志,所以我只在node-inspector上看到meteor文件,但找不到我的代码.
有人可以在Windows和Mac机器上检查这个吗?
San*_*ker 88
在Meteor 0.5.4中,这变得更加容易:
首先从终端运行以下命令:
npm install -g node-inspector
node-inspector &
export NODE_OPTIONS='--debug-brk'
meteor
Run Code Online (Sandbox Code Playgroud)
然后http://localhost:8080在浏览器中打开以查看节点检查器控制台.
更新
从Meteor 1.0开始,你可以输入
meteor debug
Run Code Online (Sandbox Code Playgroud)
这实际上是上述命令的快捷方式,然后如上所述在浏览器中启动节点检查器.
更新
在Meteor 1.0.2中添加了一个控制台或shell.在服务器上输出变量和运行命令可能会派上用场:
meteor shell
Run Code Online (Sandbox Code Playgroud)
小智 16
Meteor应用程序是Node.js应用程序.使用该meteor [run]命令运行Meteor应用程序时,可以将NODE_OPTIONS环境变量配置为node以调试模式启动.
NODE_OPTIONS环境变量值的示例:
--debug--debug=47977 - 指定一个端口--debug-brk - 打破第一个声明--debug-brk=5858 - 在第一个语句中指定端口和中断如果您export NODE_OPTIONS=--debug,meteor从同一shell运行的所有命令都将继承环境变量.或者,您可以使用一次运行启用调试NODE_OPTIONS="--debug=47977" meteor.
要进行调试,请node-inspector在不同的shell中运行,然后转到http://localhost:8080/debug?port=<the port you specified in NODE_OPTIONS>,无论是什么node-inspector告诉您运行.
Mas*_*ang 10
要在调试模式下启动node.js,我这样做了:
之前
nodeOptions.push(path.join(options.bundlePath, 'main.js'));
Run Code Online (Sandbox Code Playgroud)
加
nodeOptions.push('--debug');
Run Code Online (Sandbox Code Playgroud)以下是附加调试器eclipse的其他实用步骤:
当您在meteor app文件夹中启动meteor时,您将在控制台中看到" 调试器在端口5858上侦听 ".
fer*_*lis 10
On Meteor 1.0.3.1(更新到Sergey.Simonchik答案)
启动你的服务器 meteor run --debug-port=<port-number>
点浏览器 http://localhost:6222/debug?port=<port-number>
<port-number>您指定的端口在哪里.
在您的代码中添加debugger;您要设置断点的位置.
根据debugger;调用的位置,它将在打开检查器的客户端或服务器浏览器窗口中断.
我喜欢通过GUI设置断点.这样我就不必记得从我的应用程序中删除任何调试代码.
这就是我设法为我的本地流星应用程序做服务器端的方法:
meteor debug
Run Code Online (Sandbox Code Playgroud)
以这种方式启动你的应用.
将Chrome打开到其提供的地址.您可能需要安装https://github.com/node-inspector/node-inspector(它现在可能与Meteor捆绑在一起?不确定)
你会看到一些奇怪的内部流星代码(不是你写的应用程序代码).按播放以运行代码.此代码只是启动服务器以侦听连接.
只有在按下播放后,您才会在调试器文件夹结构中看到名为"app"的新目录.在你的流星项目文件中.在那里设置一个你想要的断点.
打开应用的本地地址.这将运行您的服务器端代码,您应该能够达到您的断点!
注意:您必须重新打开检查器,并在每次重新启动应用程序时再次执行此过程!
从Meteor 1.0.2开始,服务器端调试的最佳方式可能是直接通过新的内置shell:运行服务器运行meteor shell.更多信息:https://www.meteor.com/blog/2014/12/19/meteor-102-meteor-shell
我不确定为什么它不适合你.
我可以按照控制台(Mac)上的步骤使用它.
$ ps
$ kill -s USR1 *meteor_node_process_id*
$ node-inspector &
Run Code Online (Sandbox Code Playgroud)
以上步骤在https://github.com/dannycoates/node-inspector上提到.它用于将node-inspector附加到运行节点进程.
| 归档时间: |
|
| 查看次数: |
31937 次 |
| 最近记录: |