node.js - не удается заставить работать mongodb, возможно, неправильно установлено - PullRequest
1 голос
/ 08 сентября 2011

Полагаю, это выстрел в темноте, поскольку я не могу показать вам особого кода ...

но я использую нод и пытаюсь использовать 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 Ответ

1 голос
/ 08 сентября 2011

Шаг 0: убедитесь, что MongoDB работает ps -ef | grep mongod.Если он не запущен, проверьте файл журнала по причине его сбоя.

Шаг 1: убедитесь, что вы можете подключиться к MongoDB из командной строки.

Шаг 2: проверьте метод подключения,Есть несколько способов сделать это, но убедитесь, что у вас есть правильный servername:post/dbname

Вот сообщение в блоге , которое я написал .Это проходит через простую настройку с Node.JS + MongoDB + Cloudfoundry.Простая настройка работает локально и в Cloudfoundry, поэтому вы должны иметь возможность игнорировать шаги Cloudfoundry и по-прежнему работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...