Debugging Meteor:服务器端调试

Debugging Meteor:服务器端调试,debugging,meteor,server-side,Debugging,Meteor,Server Side,有人知道调试服务器端代码的好方法吗? 我尝试启用Node.js调试,然后使用Node inspector,但它没有显示我的任何代码 我最终使用了console.log,但这非常低效 更新:我发现以下过程在我的Linux机器上运行: 当您运行Meteor时,它将生成两个进程 进程1:/usr/lib/meteor/bin/node/usr/lib/meteor/app/meteor/meteor.js 进程2:/usr/lib/meteor/bin/node/home/paul/codes/bbt

有人知道调试服务器端代码的好方法吗? 我尝试启用Node.js调试,然后使用Node inspector,但它没有显示我的任何代码

我最终使用了console.log,但这非常低效

更新:我发现以下过程在我的Linux机器上运行:

  • 当您运行Meteor时,它将生成两个进程

    进程1:/usr/lib/meteor/bin/node/usr/lib/meteor/app/meteor/meteor.js

    进程2:/usr/lib/meteor/bin/node/home/paul/codes/bbtest\u code/bbtest02/.meteor/local/build/main.js——keepalive

  • 您需要在进程2上发送kill-s USR1

  • 运行节点检查器,您可以看到您的服务器代码

  • 在我的第一次尝试中,我将/usr/lib/meteor/bin/meteor中meteor启动脚本的最后一行修改为

    exec "$DEV_BUNDLE/bin/node" $NODE_DEBUG "$METEOR" "$@"
    
    然后在命令提示符下运行
    NODE\u DEBUG=--DEBUG meteor
    。这只在process1上放置了--debug标志,所以我只能在node inspector上看到meteor文件,无法找到我的代码


    有人能在Windows和Mac计算机上检查一下吗?

    我不知道为什么它对您不起作用。
    我可以通过在控制台(Mac)上执行以下步骤来使用它


    上面提到了上述步骤。它用于将节点检查器附加到正在运行的节点进程。

    要在调试模式下启动node.js,我是这样做的:

  • 打开/usr/lib/meteor/app/meteor/run.js
  • 以前

    nodeOptions.push(path.join(options.bundlePath, 'main.js')); 
    

  • 以下是附加eclipse调试器的其他实际步骤:

  • 在这里使用'--debug brk'而不是'--debug',因为使用eclipse作为调试器更容易附加node.js
  • 添加“调试器;”在要调试的代码中。(我个人更喜欢这种方式)
  • 在控制台中运行meteor
  • 附加到eclipse中的node.js(V8工具,附加到localhost:5858)
  • 运行,等待调试器被命中

  • 当您在meteor应用程序文件夹中启动meteor时,您将在控制台中看到“调试器侦听端口5858”。

    meteor应用程序是Node.js应用程序。使用
    Meteor[run]
    命令运行Meteor应用程序时,您可以

    NODE\u选项的示例
    环境变量值:

    • --调试
    • --debug=47977
      -指定端口
    • --debug brk
      -在第一条语句中中断
    • --debug brk=5858
      -在第一条语句中指定端口和中断
    如果
    export NODE\u OPTIONS=--debug
    ,则从同一shell运行的所有
    meteor
    命令都将继承环境变量。或者,您可以使用
    NODE_OPTIONS=“--debug=47977”meteor
    ,仅为一次运行启用调试


    要进行调试,请在不同的shell中运行
    节点检查器
    ,然后转到
    http://localhost:8080/debug?port=
    ,不管节点检查器告诉您运行什么。

    在Meteor 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中添加了控制台或外壳。在服务器上输出变量和运行命令可能很方便:

    meteor shell
    

    我编写了一个名为meteor inspector的小meteor包,它简化了节点检查器调试meteor应用程序的使用。它在内部管理node inspector的生命周期,因此,在某些文件发生更改后,用户无需手动重新启动调试器

    有关更多详细信息和具体使用说明,请参阅。

    ,这是一款为开源开发人员免费提供的强大IDE,使调试服务器端变得更加容易


    我已经在Windows上对其进行了测试,配置非常简单-请参阅。

    解决我问题的检查器是meteor服务器控制台。以下是我安装它所遵循的过程:

  • 在项目文件夹中,添加智能包
    server eval

    mrt add server-eval
    
    对于Meteor 1.0:

    meteor add gandev:server-eval
    
  • 重新启动流星

  • 从下载
    crx
    Chrome扩展名文件
  • 在Chrome中打开扩展页面,并将
    crx
    文件拖动到扩展页面
  • 重新启动Chrome
  • 检查web检查器以评估服务器端代码:


  • 与node inspector相比,我的输出更清晰。

    如果您喜欢使用,可以调用
    node\u OPTIONS='--debug'meteor
    ,然后(在不同的shell上)
    节点调试localhost:5858

    从Meteor 1.0.2开始,服务器端调试的最佳方式可能是直接通过新的内置shell:运行server run
    Meteor shell
    。更多信息请点击此处:

    关于Meteor 1.0.3.1(更新至Sergey.Simonchik答案)

    使用meteor run--debug port=

    将浏览器指向
    http://localhost:6222/debug?port=

    其中,
    是您指定的端口

    在代码中添加
    调试器要设置断点的位置


    取决于调试器的位置时,它将在客户端或服务器浏览器窗口上中断,并打开inspector。

    我喜欢通过GUI设置断点。这样我就不必记得从我的应用程序中删除任何调试代码

    这就是我如何为我的本地meteor应用程序在服务器端实现的:

    meteor debug
    
    这样启动你的应用程序

    将Chrome打开到它提供给您的地址。您可能需要安装(它现在可能与Meteor捆绑在一起?不确定)

    你会看到一些奇怪的内部meteor代码(不是你编写的应用程序代码)按播放运行代码。这段代码只是启动服务器以侦听连接

    只有在按下play键后,您才能继续播放
    meteor add gandev:server-eval
    
    meteor debug