2016-04-08 42 views
0

CronHistory (https://github.com/percolatestudio/meteor-synced-cron'un parçası olan ve iyi çalışıyor gibi görünen) koleksiyonunun görünürlüğünü elde etmeye çalışıyorum.Meteor koleksiyonuna erişilemiyor ("tanımlı değil")

Meteor kabuğunda (sunucu tarafı), koleksiyonun diğerleri arasında olduğunu görebiliyorum. Benim events toplama:

> 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 } ] 

Ama (başka yerde ya) kabuğundan erişemez:

> 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 

diğer koleksiyonların doğru değildir :

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

ona erişebilir miyim Teşekkürler!

+1

Sorun muhtemelen koleksiyonları nasıl açıkladığınız ve içe aktardığınızdır. GitHub bağlantısı yerine, sorunu yeniden oluşturmak için küçük bir kod kümesi oluşturmanıza yardımcı olabilirsiniz. – aedm

+0

Bu örnek kodu nerede barındıracaksınız? Bu koleksiyona neden erişilemediğini yazdığım kod snippet'lerinden birinin açık olacağını umuyordum. Bu koleksiyonu bildirmiyorum, syncedCron paketi tarafından yapıldı ve sonra 'Collection.getAll()' ile görüntülenebilir. Bana bu Koleksiyonlar dizisini ekleyebileceği, ancak doğrudan erişilemediği için garip geliyor. Deniz kabuğu. Nasıl olabilir? – KindOfGuy

+0

'Meteor.Collection', koleksiyona göre bir ad alma yolu bulunmuyor. Paket içlerine girmelisin, ayrıntılı cevabımı görün. – aedm

cevap

1

Paketler, genel Package dizisinde saklanır. Paket içeriğine, Package["percolate:synced-cron"] kullanarak Meteor kabuğuna erişebilirsiniz.

source code yılında bir dakika kazma sonra istediğin bu muhtemelen:

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

sadece de tarayıcı konsoluna Package erişebilir lütfen unutmayın, o zaman istemci tarafı paketleri depolar. Obviosly, sadece hata ayıklama amaçları için bunu yapmalısınız.