2011-09-08 68 views
1

我想這是一個在黑暗中拍攝,因爲沒有很多特定的代碼,我可以告訴你...node.js - 無法獲得mongodb的工作,可能安裝了錯誤?

但我使用節點並試圖使用mongodb,但是我不能讓mongodb連接。我已經嘗試了幾個教程,它們幾乎可以在開箱即可使用。在幾種情況下,似乎沒有任何對數據庫的直接引用的頁面將加載正常。例如,將會加載'posts/new'頁面。但'/'可能會引用顯示帖子,只會靜靜地掛起(瀏覽器顯示頁面加載)。

舉例來說,如果我有這麼提交新帖子瀏覽器掛起,並且在終端獲得:

Express app started on port 3000 
Error: Invalid ObjectId 
at Function.fromString (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/drivers/node-mongodb-native/objectid.js:27:11) 
at ObjectId.cast (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/schema/objectid.js:99:16) 
at ObjectId.castForQuery (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/schema/objectid.js:133:17) 
at Query.cast (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/query.js:249:32) 
at Query.findOne (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/query.js:851:10) 
at Function.findOne (/Users/xxx/Node_projects/noobjs/node_modules/mongoose/lib/model.js:714:16) 
at /Users/xxx/Node_projects/noobjs/routes/articles.js:13:13 
at paramCallback (/Users/xxx/Node_projects/noobjs/node_modules/express/lib/router/index.js:259:7) 
at param (/Users/xxx/Node_projects/noobjs/node_modules/express/lib/router/index.js:241:11) 
at pass (/Users/xxx/Node_projects/noobjs/node_modules/express/lib/router/index.js:253:5) 
GET /article/new 500 
GET /articles/new 200 

,如果有幫助的一切,這裏是對上面使用的教程應用程序中的package.json:

{ 
"name": "noobjs" 
, "description": "A demo app in nodejs illustrating use of express, jade and mongoose" 
, "version": "2.0.0" 
, "private": true 
, "author": "Madhusudhan M S (http://twitter.com/madhums)" 
, "engines": { 
    "node": ">= 0.4.10" 
} 
, "dependencies": { 
    "express" : ">= 2.3.12" 
, "jade" : ">= 0.12.4" 
, "mongoose": ">= 1.4.0" 
, "stylus" : ">= 0.13.7" 
, "express-csrf" : ">= 0.3.3" 
, "gzippo" : ">= 0.0.4" 
, "express-messages" : ">= 0.0.2" 
} 
} 

另外,當我從命令行./mongod我得到-bash: ./mongod: No such file or directory。我從終端或瀏覽器嘗試的其他任何東西似乎都沒有與mongodb進行通信。

讓我知道是否有什麼我可以做診斷/更改我的安裝。

回答

1

步驟0:確保MongoDB正在運行ps -ef | grep mongod。如果它沒有啓動,請檢查日誌文件找出失敗的原因。

第1步:確保您可以從命令行連接到MongoDB。

第2步:檢查您的連接方法,有幾種方法可以做到這一點,但保證你有正確的servername:post/dbname

這裏有一個blog post I wrote。這通過Node.JS + MongoDB + Cloudfoundry進行簡單設置。這個簡單的安裝程序可以在本地和Cloudfoundry上運行,所以你應該能夠忽略Cloudfoundry的步驟,並且仍然能夠正常工作。

+0

是的,它沒有運行。我不知道什麼是錯的。但如果我只是輸入'mongod',它就會啓動。 – tuddy