我有从服务器进行HTTP get调用的代码,使用EJSON.parse从url解析数据(最初是JSON格式),然后将解析后的数据中的信息添加到Meteor集合中。它工作正常,但在更新到Meteor 0.6.5之后的一段时间,代码停止工作。在我的代码中,我在进行HTTP调用并插入集合之前删除了服务器启动时集合的所有成员。我在控制台中查看内容时发现了一些奇怪的东西:该集合包含不再存在的信息。我已经删除了发出HTTP调用并插入集合的代码,但集合中仍然有对象。实际上,集合中的对象包含来自前一天并且不再位于URL的URL中的信息。怎么会这样?
编辑:以下是HTTP调用的一些代码:
Halls = new Meteor.Collection("halls");
...
if (Meteor.is_server) {
Meteor.startup(function () {
Halls.remove({});
var result = HTTP.call("GET", "http://claremontcollegemenus.appspot.com/json");
var parsedData = EJSON.parse(result.content);
for (date in parsedData.dates) {
if (parsedData.dates[date].date == today) { // Check for today's date
for (var menu in parsedData.dates[date].menus){
Halls.insert({name: parsedData.dates[date].menus[menu].name, meals: parsedData.dates[0].menus[menu].meals, date: parsedData.dates[date].date});
}
}
}
});
}
此外,我评论if (Meteor.is_server) {
(导致错误),然后取消注释,现在集合中没有任何内容。
答案 0 :(得分:0)
您对EJSON未定义有任何错误吗? 0.6.5版本使得它需要显式添加所有包依赖项。
在项目文件夹中尝试meteor add ejson
并告诉我们你得到了什么。