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
,您就差不多设置好了,只需按照文本进行即可。
版本
我在小型 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
,您就差不多设置好了,只需按照文本进行即可。