2014-03-04 62 views
0

我是MeteorJS的新手,所以這個問題可能是愚蠢的,但無論如何。 我已經嘗試了好幾次,遵循有關使用meteorJS構建初學者應用程序的教程,即使是在meteor.com的首頁提供的教程。 但是這行代碼MeteorJS沒有連接到MongoDB

Something = new Meteor.Collection("something"); 

似乎並沒有被時間)我的流星的應用程序運行的工作,但發現(返回)沒有從這個MongoDB的收集數據和b)當我輸入到流星app目錄"meteor mongo"我試着手動將一些數據插入到這個集合中,它返回一個未定義的集合錯誤。

我已經安裝了MeteorJS只是使用curl https://install.meteor.com/ | sh,據我所知,它還安裝了流星蒙哥拉德版本。

經過長達數小時的谷歌搜索,我可以承認,顯然我做錯了什麼,但我找不到什麼! 任何意見/幫助在這裏將不勝感激!

預先感謝您!

+0

你已經給出了一小段代碼。應該有發佈/訂閱(如果autopublish被刪除),模板,事件處理程序(插入調用)代碼片段。你是否也嘗試從瀏覽器插入,如果是的話,你是如何嘗試的? –

+0

我的代碼是meteor.com在頭版示例中提供的代碼:http://pastebin.com/n3aWP7p0。 此外,我沒有嘗試從瀏覽器中插入任何東西。 –

+1

你可以嘗試從瀏覽器控制檯執行'Something.insert({foo:「bar」})',然後'Something.find()。fetch()'嗎? –

回答

1

流星主頁上的簡單示例使用了兩個默認包autopublishinsecure,它們允許您快速模擬在後臺爲您設置發佈/訂閱模式的應用程序,並假定訪問者是可信的。

話雖這麼說,只要你使用設置您的收藏:

CollectionNameMeteor = new Meteor.Collection("collection-name-mongo"); 

流星實現http://docs.meteor.com/#meteor_collection這是您的集合的MongoDB的兼容表現,但語法是有點不同。

雖然有關MongoDB用MongoDB的語法db.collection-name-mongo.find()返回文檔的直接查詢,流星的收集API使用了稍微不同的語法CollectionNameMeteor.find(),並返回這裏描述http://docs.meteor.com/#meteor_collection_cursor和檢索從光標文件的光標,你需要CollectionNameMeteor.find().fetch()其取結果作爲一個數組。

但是你通常會在你的流星代碼上使用遊標引用,因爲大多數流星的魔法都依賴於它。

同樣,做一個插入,在MongoDB的殼,你會怎麼做

db.collection-name-mongo.insert({foo: "bar"}) 

鑑於,流星,你會做

CollectionNameMeteor.insert({foo: "bar"}) 

其中也有一個有用的回調http://docs.meteor.com/#insert