Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/debugging/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何在Meteor的服务器端调试和记录自己的代码?_Debugging_Node.js_Meteor_Serverside Javascript_Node Inspector - Fatal编程技术网

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
    语句作为断点
  • 在服务器终端中运行
    节点检查器&
    。(谷歌“节点检查器”来安装它。)
  • 运行流星;(如果没有打开客户端窗口,则不会附加调试器,因为还没有服务器线程。)
  • 刷新客户端浏览器窗口;(启动将在第一行中断并连接到
    节点检查器的服务器线程
  • 在[SERVER:8080]打开一个浏览器窗口,服务器代码停在第一行(
    [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