2016-04-08 11 views
0

cronHistory(https://github.com/percolatestudio/meteor-synced-cronの部分)が有効であると思われるコレクションの可視性を取得しようとしています。Meteor collectionにアクセスできない(「定義されていません」)

流星殻(サーバー側)では、コレクションが他のものの中に存在するのがわかります。私eventsコレクション:

> Meteor.Collection.getAll() 

[{ name: 'events', 
    instance: 
    { _makeNewID: [Function], 
     _transform: null, 
     _connection: [Object], 
     _collection: [Object], 
     _name: 'events', 
     _driver: [Object], 
     _restricted: true, 
     _insecure: undefined, 
     _validators: [Object], 
     _prefix: '/events/', 
     before: [Object], 
     _hookAspects: [Object], 
     after: [Object], 
     hookOptions: [Object], 
     direct: [Object], 
     _c2: [Object] }, 
    options: undefined }, 

...

{ name: 'cronHistory', 
    instance: 
    { _makeNewID: [Function], 
     _transform: null, 
     _connection: [Object], 
     _collection: [Object], 
     _name: 'cronHistory', 
     _driver: [Object], 
     _restricted: false, 
     _insecure: undefined, 
     _validators: [Object], 
     _prefix: '/cronHistory/', 
     before: [Object], 
     _hookAspects: [Object], 
     after: [Object], 
     hookOptions: [Object], 
     direct: [Object] }, 
    options: undefined } ] 

しかし、私は(または他の場所)シェルからアクセスすることはできません。

> cronHistory.findOne() 
ReferenceError: cronHistory is not defined 
    at [object Object]:1:-61 
    at Script.(anonymous function) [as runInThisContext] (vm.js:41:22) 
    at /Users/technical/code/mssc/.meteor/local/build/programs/server/shell-server.js:305:27 
    at /Users/technical/.meteor/packages/meteor-tool/.1.1.10.1vct6fi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/meteor-promise/fiber_pool.js:33:40 

他のコレクションの真のではありません:

> FutureNotifications.findOne() 
{ _id: 'btX6XGnXtaCkaEBzB' } 
> Events.findOne() 
{ _id: 'r3sw6kw9M8fPXGmvd', 
    name: 'rstierstnrstrst', 
    location: 'rein', 

私はそれにアクセスできますか?ありがとう!

+1

おそらく問題は、コレクションの宣言とインポートの方法です。 GitHubリンクの代わりに、問題を再現するための小さなコードセットを作成すると、お手伝いできます。 – aedm

+0

あなたはそのようなサンプルコードをどこにホストしますか?コードスニペットの誰かが私にこのコレクションにアクセスできない理由があることが明らかになることを望んでいました。私はこのコレクションを宣言していません。これはsyncedCronパッケージによって作成され、 'Collection.getAll()'で表示可能です。このコレクションの配列はできますが、直接アクセスできるわけではありません。シェル。どのようにすることができますか? – KindOfGuy

+0

'Meteor.Collection'はコレクションを名前で取得する公式の方法はありません。あなたはパッケージ内部を掘り下げ、私の詳細な答えを見てください。 – aedm

答えて

1

パッケージは、グローバルPackageアレイに格納されます。 Meteorシェルのパッケージ内部にはPackage["percolate:synced-cron"]を使用してアクセスできます。

source codeに分を掘った後、これはあなたが望むものはおそらくです:

Package["percolate:synced-cron"].SyncedCron._collection.findOne(); 

それは、クライアント側のパッケージを格納し、あなただけのようにも、ブラウザのコンソールでPackageにアクセスできることに注意してください。 obviosly、あなたはデバッグの目的のためだけこれをする必要があります。

関連する問題