2

これが私のコードです。https://github.com/StudioMockingbird/SH_meteor

コレクションに自分のデータを挿入しようとしているリーダーボードの例です。

私のデータは lib/book.js にあり、オブジェクト (var myBook) として定義されています。

挿入に使用するコードは Leaderboard.js にあります -

Pages = new Meteor.Collection("pages");
if (Meteor.isServer) {
    Meteor.startup(function () {
        if(Pages.find().count() === 0){
            var pages = JSON.parse(myBook.stories);
            for (page in pages) {
                Pages.insert(pages[page]);
            }
        }
    });
}

コードを実行しようとすると、

Running on: http://localhost:3000/
Exited with code: 1
Exited with code: 1
Exited with code: 1
Your application is crashing. Waiting for file change.

私は何を間違っていますか?私は流星にまったく新しいです。

4

2 に答える 2

1

解決する必要があることがいくつかあります。

ブックのスコーピングを削除する

var myBook変数を使用varするmyBookことでスコープが設定されているか、少なくとも私の0.6.0rc8 では使用されてい0.6.0ます。あなたの問題はただそれを変えるだけです

JSON.parse の使用

JSON データは既にオブジェクトとして宣言されているため、オブジェクトに解析する必要はありません。次のように変更します。

 var pages = JSON.parse(myBook.stories);

var pages = myBook.stories;

これらの変更により、正しく機能するようになりました。

于 2013-04-04T08:54:50.323 に答える
0

または「forEach」を使用した別の方法。「非同期」であるため、私はそれを好みます

pages.forEach(function (item, index, array) {
    console.log('inserting book ', item);
    Pages.insert(
        item
    );
});
于 2014-11-20T19:25:33.880 に答える