Meteor Collection包含过时的信息

时间:2013-08-23 01:57:46

标签: json mongodb collections meteor

我有从服务器进行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) {(导致错误),然后取消注释,现在集合中没有任何内容。

1 个答案:

答案 0 :(得分:0)

您对EJSON未定义有任何错误吗? 0.6.5版本使得它需要显式添加所有包依赖项。

在项目文件夹中尝试meteor add ejson并告诉我们你得到了什么。