如何调试和流星的服务器端登录自己的代码?(How to debug and log own code

2019-07-31 14:41发布

没关系。 这不工作的原因:我忘了meteor reset这样debugger没有得到一个机会停下来。 咄!

更多信息:我使用的方法在回答由梅森畅的相关问题,而不是kill -s USR1 [proc_id]在那里我可以看到脚本,但不能停在启动()函数)。 另外,我使用的陨石。

我试图调试Meteor.startup(函数())上的流星服务器端代码(即下/server )淋巴结检查,我看了这个问题 ,并按照答案改变run.js ,但不知何故,我自己的启动函数脚本不会在Chrome的脚本部分显示出来。

我怎么在这里看到我的代码,并设置断点,并停止在这些点? 顺便说一句,在Meteor_debug()无法正常输出到标准输出,标准错误,或节点检查浏览器控制台。 我也试过的console.log()与无济于事。 如何启用登录流星服务器端?

如果它的事项,我是在auth分支。

这里的代码很简单(/server/bootstrap.js):

Meteor.startup(function () {
 if (Logs.find().count() === 0) {
  var data = [/*...some data...*/];
  var timestamp = (new Date()).getTime();
  Meteor._debug("timestamp: "+timestamp+", data.len: " + data.length);
  debugger;
  for (var i = 0; i < data.length; i++) {
    data[i].timestamp = timestamp++;
    var entry_id = Logs.insert(data[i]);
    Meteor._debug("entry_id: "+ entry_id);
  }
 }
});

Answer 1:

现在我知道如何做到这一点,我会回答我的问题,使我们能够保持这个信息(详细信息)在这里:(这是基于梅森小张的回答这个问题 。)

  1. 停止执行流星。
  2. 编辑/usr/lib/meteor/app/meteor/run.js (或相应的run.js通过在陨石安装HOME//.meteorite/meteors/meteor/meteor/[LONG_HEX_CODE]/app/meteor ):
    改线
    [path.join(bundle_path, 'main.js'), '--keepalive']

    ['--debug-brk', path.join(bundle_path, 'main.js'), '--keepalive']
    // - 调试BRK使得在第一行的新断线;
  3. 添加debugger语句作为服务器代码断点;
  4. 运行node-inspector &在服务器终端。 (谷歌“节点检查”进行安装。)
  5. 运行流星; (这不会有附加调试器,因为没有服务器线程的是,如果你没有客户端窗口中打开。)
  6. 刷新客户端浏览器窗口; (启动服务器线程将打破在所述第一线,并且被连接到node-inspector 。)
  7. 打开在[SERVER:8080]一个浏览器窗口,服务器代码停止在第一行( main.js[PROJECT_DIR]/.meteor/local/build );
  8. 打调试器的浏览器窗口上的运行按钮; 根据您的debugger语句,你可能必须做在客户端浏览器窗口中的一些触发动作运行到debugger断点。 (请注意,如果等待时间过长,打RUN键,您的客户端窗口可能会超时,你必须再次刷新。)
  9. 现在你可以做平常调试东西在服务器调试窗口:步,观察变量,执行控制台,看堆等。

编辑 :对于登录的服务器端,您可以使用Meteor._debug()和执行console.log(),他们会在你运行终端显示meteor 。 在客户端,这些日志记录语句将输出到浏览器的开发的控制台。 工具。



Answer 2:

MacOSX上,你可以使用Chrome使用:

NODE_OPTIONS="--debug-brk" meteor

而在另一个终端

node-inspector --debug-port=5858 --web-port=12345

之后,Chrome连接到127.0.0.1:12345/debug?port=5858

否则有Webstorm,只需创建一个Node.js的远程调试配置并运行它:

Name : Meteor
Host : 127.0.0.1
Port 5858

需要注意的是,一旦服务器已经启动,你需要按顺序运行的流星加载,然后才能从服务器控制台调试暂停。



文章来源: How to debug and log own code on the server side of Meteor?