2011-09-08 4 views
1

Je suppose que cela est un coup de feu dans l'obscurité car il n'y a pas beaucoup de code spécifique, je peux vous montrer ...node.js - ne peut pas faire fonctionner mongodb, peut-être mal installé?

mais j'utilise le noeud et d'essayer d'utiliser MongoDB, je ne peux cependant pas obtenir mongodb à relier. J'ai essayé quelques tutoriels qui devraient fonctionner à partir de la boîte. dans plusieurs cas, les pages qui ne semblent pas avoir de référence immédiate à la base de données seront chargées correctement. Par exemple, une page "posts/new" va charger. mais '/', qui fait vraisemblablement référence à l'affichage de posts, va se bloquer en silence (le navigateur affiche le chargement de la page).

Si, par exemple, je me suis tellement soumettre un nouveau poste le navigateur se bloque et dans le terminal que je reçois:

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 

si elle aide à tous, voici le package.json pour l'application tutoriel utilisé ci-dessus:

{ 
"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" 
} 
} 

aussi quand je fais ./mongod de la ligne de commande i get -bash: ./mongod: No such file or directory. Tout ce que j'essaie du terminal ou du navigateur ne semble pas du tout communiquer avec mongodb. Faites-moi savoir s'il y a quelque chose que je peux faire pour diagnostiquer/modifier mon installation.

Répondre

1

Étape 0: vérifiez que MongoDB exécute ps -ef | grep mongod. Si ce n'est pas commencé, vérifiez le fichier journal pour la raison pour laquelle il a échoué.

Étape 1: assurez-vous que vous pouvez vous connecter à MongoDB à partir de la ligne de commande.

Étape 2: Vérifiez votre méthode de connexion, il y a plusieurs façons de le faire, mais assurez-vous que vous avez la bonne servername:post/dbname la

Voici un blog post I wrote. Cela marche à travers une configuration simple avec Node.JS + MongoDB + Cloudfoundry. La configuration simple fonctionne localement et sur Cloudfoundry, vous devriez donc être capable d'ignorer les étapes de Cloudfoundry et de toujours faire fonctionner quelque chose.

+0

ouais il ne fonctionnait pas. Je ne sais pas ce qui n'allait pas. mais si je tape simplement 'mongod' ça commence très bien. – tuddy

Questions connexes