Meteor 服务器端远程调试

Meteor server side remote debugging

版本

我在小型 Ubuntu 服务器 14.04 LTS (HVM),SSD 卷类型 - ami-3d50120d EC2 实例上使用 Meteor 1.0.3 和节点 0.10.35。

上下文

我知道如何在我的开发箱上进行服务器端调试,只需 $ meteor debug 并打开另一个浏览器指向它生成的 url -- 效果很好。

但是现在,我在未进行开发的 EC2 实例上遇到服务器错误。所以我想设置一个远程调试会话服务器端。

此外,我使用 Meteor-up 包 (mup) 部署到 EC2 实例。


编辑

为了围绕我的问题提供更多背景(和上下文),我添加了以下内容:

我想做的是,在我的 EC2 实例上,在如下位置创建一个新的 pdf:

application-name/server/.files/user/user-name/pdf-file.pdf

在我的 OSX 开发箱上,该过程运行良好。

当我部署到 EC2 并尝试这个过程时,它不起作用。目录:

/user-name/

因为某些原因从未创建用户。

我想调试一下,看看为什么我不能创建目录。

创建适用于我的开发箱的目录的代码如下:

server.js

Meteor.methods({
  checkUserFileDir: function () {
    var fs = Npm.require('fs');
    var dir = process.env.PWD + '/server/.files/users/' + this.userId + '/';
    try {
      fs.mkdirSync(dir);
    } catch (e) {
      if (e.code != 'EEXIST') throw e;
    }
  }
});

我通过 ssh 进入 EC2 实例以确保路径

/server/.files/user/

存在,因为这部分路径是上述代码正常工作所必需的。我在代码应该有 运行 和

之后检查了路径

/user-name/

部分路径正在创建。


问题

如何在我的 EC2 实例上以简单的方式调试 远程 服务器端代码,就像我在本地开发箱上所做的那样?

Kadira.io 支持远程 errors/exceptions 跟踪。它允许您在流星方法的上下文中查看服务器端异常的堆栈跟踪。

有关详细信息,请参阅 https://kadira.io/error-tracking.html

在我的情况下,因为我使用的是 Meteor-up (mup),所以我不能按说进行调试,但是可以通过使用命令 $ mup logs 访问远程 EC2 实例服务器控制台和错误 - f 在我的开发箱上。

这有效地解决了我对服务器端远程实例视而不见的问题。

它仍然没有达到远程实际调试的目的,这加快了查找错误和性能瓶颈的过程,但这是我们目前所拥有的。

对于仍在搜索的人:

@zodern 将 meteor 应用程序的服务器端调试添加到很棒的 meteor-up 工具中: https://github.com/zodern/meteor-up/pull/976

在部署目录中执行mup meteor debug,您就差不多设置好了,只需按照文本进行即可。