node.js - 无法让mongodb工作,可能安装错了?

时间:2011-09-08 00:13:53

标签: mongodb node.js express

我想这是一个黑暗的镜头,因为没有很多特定的代码我可以告诉你...

但我正在使用节点并尝试使用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

如果它有帮助,这里是上面使用的教程app的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 :(得分:1)

步骤0:确保MongoDB正在运行ps -ef | grep mongod。如果它未启动,请检查日志文件以查找失败的原因。

步骤1:确保您可以从命令行连接到MongoDB。

第2步:检查您的连接方法,有多种方法可以做到这一点,但请确保您拥有正确的servername:post/dbname

这是一个blog post I wrote。通过Node.JS + MongoDB + Cloudfoundry进行简单的设置。简单的设置在本地和Cloudfoundry上运行,因此您应该能够忽略Cloudfoundry步骤并仍然可以正常工作。