Debugging 如何在Meteor的服务器端调试和记录自己的代码?
没关系。这不起作用的原因是:我忘记了Debugging 如何在Meteor的服务器端调试和记录自己的代码?,debugging,node.js,meteor,serverside-javascript,node-inspector,Debugging,Node.js,Meteor,Serverside Javascript,Node Inspector,没关系。这不起作用的原因是:我忘记了流星重置,所以调试器没有机会停止。哼 更多信息:我使用的是Mason Chang对相关问题的回答中的方法,而不是kill-s USR1[proc_id](在这里我可以看到脚本,但无法在startup()函数中停止)。还有,我用的是陨石 我试图用node inspector在Meteor服务器端(即,/server)调试代码,我已经阅读了这篇文章,并按照答案更改run.js,但不知何故,我自己的启动函数脚本没有出现在Chrome的脚本部分 我如何在这里查看代码并
流星重置
,所以调试器
没有机会停止。哼
更多信息:我使用的是Mason Chang对相关问题的回答中的方法,而不是kill-s USR1[proc_id]
(在这里我可以看到脚本,但无法在startup()函数中停止)。还有,我用的是陨石
我试图用node inspector在Meteor服务器端(即,/server
)调试代码,我已经阅读了这篇文章,并按照答案更改run.js
,但不知何故,我自己的启动函数脚本没有出现在Chrome的脚本部分
我如何在这里查看代码并设置断点并在这些断点处停止?顺便说一句,Meteor_debug()不会向标准输出、标准输出或节点检查器浏览器控制台输出任何内容。我还尝试了console.log(),但没有成功。如何在Meteor服务器端启用日志记录
如果重要的话,我在auth
分支
这里的代码非常简单(/server/bootstrap.js):
流星启动(函数(){
if(Logs.find().count()==0){
var data=[/*…某些数据…*/];
var timestamp=(新日期()).getTime();
Meteor._调试(“timestamp:+timestamp+”,data.len:+data.length);
调试器;
对于(变量i=0;i/usr/lib/meteor/app/meteor/run.js
(或meteorite在主页中安装的相应run.js
。meteorite/meteors/meteor/[LONG_HEX_code]/app/meteor
):更改行
[path.join(bundle_path,'main.js'),'-keepalive']
到
['--debug brk',path.join(bundle_path,'main.js'),'--keepalive']
//--调试brk使新线程在第一行中断李>
debugger
语句作为断点李>
节点检查器&
。(谷歌“节点检查器”来安装它。)节点检查器的服务器线程
)[PROJECT_DIR]/.meteor/local/build
中的main.js
)李>
调试器
语句的位置,您可能必须在客户端浏览器窗口中执行一些触发操作,才能运行到调试器
断点。(请注意,如果您等待太长时间才点击“运行”按钮,您的客户端窗口可能会超时,您必须再次刷新。)编辑:对于服务器端的日志记录,您可以使用Meteor.\u debug()和console.log(),它们将显示在您运行
Meteor
的终端中。在客户端,这些日志记录语句将输出到浏览器开发工具的控制台。在MacOSX上,您可以与Chrome一起使用:
NODE_OPTIONS="--debug-brk" meteor
在另一个航站楼
node-inspector --debug-port=5858 --web-port=12345
然后将Chrome连接到127.0.0.1:12345/debug?端口=5858
否则,使用Webstorm,只需创建Node.js远程调试配置并运行它:
Name : Meteor
Host : 127.0.0.1
Port 5858
名称:流星
主持人:127.0.0.1
端口5858
请注意,一旦服务器启动,您需要按run以加载Meteor,然后暂停以从服务器控制台进行调试。由于Meteor现在支持
--debug
和--debug brk
,这种攻击是否仍然适用?@Brandon:现在事情变得容易多了。见(感谢Kasima Tharnpipitchai)。希望齐超能更新答案。
Name : Meteor
Host : 127.0.0.1
Port 5858