2014-02-27 96 views
0

執行以下正常工作:流星本地主機,無法通過控制檯訪問本地收集

$ mrt create testapp 
$ cd testapp 
$ mkdir local 
$ cd local 
$ mkdir collections 
$ touch test.js 

在test.js,我補充一下:

Test = new Meteor.Collection('test'); 

然後我開始流星:

$ meteor 

打開新的控制檯選項卡,我啓動Mongo:

$ meteor mongo 

我插入一個條目:

$ db.test.insert({ Title: "This is a test" }); 

我打開本地主機上我的瀏覽器可以使用控制檯來看到這一點:

test.findOne(); 

好了,所以這個作品,因爲它應該。但是,我正在開展一個項目,我已經開展了幾天的工作。我無法弄清楚是什麼導致了這個問題,但我無法通過控制檯訪問集合。

Posts = new Meteor.Collection('posts'); 

我插入一個測試後與蒙戈控制檯,可以與蒙戈控制檯進行檢索,但在瀏覽器中,我得到:

Posts.findOne(); 
-- undefined 

我一直在挖掘和無法弄清楚什麼我本可以做到導致這個失效。我最初是從localhost啓動這個應用程序,但是在MongoHQ上有一個遠程數據庫。但我刪除了本地內的DB文件夾,重置了應用程序。重置mongo。我創建了一個新文件夾,並將基本文件複製過來,所以流星本來會首次運行。我無法弄清楚這個問題。

:(

有什麼建議嗎?謝謝!

+0

所以我在控制檯中得到了intellisense,所以它看到了「Posts」變量。是否收集與本地數據庫和minimongo有同步問題? – user1447679

+1

在您的應用程序中,您是否調用了新的Meteor.Collect離子...',還是你把它放在一個共享目錄中,就像你問題的頂部一樣? 'autopublish'開啓了(還是刪除了它)? –

+0

嗨大衛。在我的應用程序中,我在「client/collections/posts.js」中調用了新的Meteor.Collection,我刪除了autopublish並將其添加回來以確保它,並且它說:Package iron-router已被忽略,因爲它已被手動安裝在安裝時在/包裝中。這與它有什麼關係? – user1447679

回答

1

你的方式,同時在客戶端和服務器都可以看到它。如果服務器沒有收集定義來定義集合,那麼它就不能代表客戶端寫入數據庫,我建議將它放在一個像collections/posts.js這樣的文件中