0

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

4

1 回答 1

0

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

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

于 2013-08-25T07:25:29.887 回答