C:\Users\Nick\Desktop\turntablefm\Bots\Super Bot>node bot.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'mongoose'
at Function._resolveFilename (module.js:334:11)
at Function._load (module.js:279:25)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Object.<anonymous> (C:\Users\Nick\Desktop\turntablefm\Bots\Super Bot\db.j
s:1:78)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Module.require (module.js:357:17)
Je l'ai déjà installé à l'aide de npm install et j'ai essayé de le réinstaller, mais cela n'a pas fonctionné?
essayez d'installer en utilisant cette commande:
npm install mongoose
n'utilisez pas le commutateur -g.
BTW: J'ai exécuté l'invite de commande en mode administrateur.
http://prazjain.wordpress.com/2012/04/24/node-js-error-error-cannot-find-module-xyz/
Installer avec l'option --save
:
npm install mongoose --save
Cela ajoute de la chair de mangeuse à package.json
que Heroku utilise pour créer votre application.
Vous devez appeler en ligne de commande
npm install mongoose
n'oubliez pas d'appeler cette commande depuis le chemin racine de votre projet
npm install mongoose
cela fonctionnera et si tout va bien, vous obtiendrez ensuite dans votre terminal
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])
J'ai eu le même problème sur mon Mac et j'ai fait une recherche sous le feu des projecteurs et découvert que Mangouste est installé dans/usr/local/node_modules (quand j'ai exécuté 'npm install mongoose'). Déplacer le dossier mangouste vers ~ (home) node_modules où npm est supposté pour installer réellement résolu mon problème.
Si vous avez déjà installé Mangouste globalement (npm install -g Mangouste), faites alors
% npm link mongoose
dans le répertoire du projet. Cela a fonctionné pour moi.
npm install crée "node_modules" dans le pwd (répertoire de travail actuel)
au fur et à mesure que votre application grandit, le nombre de modules requis augmente et la meilleure approche consiste à maintenir un package.json (référence: https://stackoverflow.com/a/14226133/832147 ), puis à émettre simplement "npm install "au lieu d'installer chacun.
En tant qu'extension lors du déploiement de votre application sur des plateformes telles que Heroku, vous pouvez ignorer (git ignore) votre immense répertoire node_modules de votre projet. Heroku installe vos modules dépendants en lisant votre package.json
cette approche nous oblige à créer les mêmes modules de noeud requis pour chacun de nos projets basés sur des noeuds, mais c'est correct car nous devons émettre la commande "npm install" une fois par projet
dans le répertoire contenant bot.js, y a-t-il un dossier node_modules contenant un dossier mangouste? Votre serveur Mongodb est-il en cours d'exécution?
Vous pouvez également le tester en étant dans le répertoire racine du projet, en appelant le noeud (pas d'argument pour ouvrir le REPL) et en essayant d'exiger une mangouste à cet emplacement.
Ouvrez simplement votre dossier de projet en ligne de commande et exécutez la commande ci-dessous afin que la dépendance mongoose puisse être ajoutée au fichier package.json Je suis sûr à 100% que vous n'obtiendrez plus cette erreur.
$ Sudo npm install --save mangouste
sur les fenêtres si vous le faites
npm install mongoose
il l'installera par défaut sur votre lecteur C: \
et si vous essayez d’exécuter un fichier * .js à partir de say D:\drive
cela vous donnera la même erreur.
je suppose donc que le répertoire d'installation et le fichier * .js doivent avoir la même racine.
Depuis le doc/blog
En général, la règle de base est la suivante:
Si vous installez quelque chose que vous voulez utiliser dans votre programme, using require ('what' '), puis installez-le localement, à la racine de votre projet.
Si vous installez quelque chose que vous voulez utiliser dans votre Shell, en ligne de commande ou quelque chose du genre, installez-le globalement, donc que ses fichiers binaires se retrouvent dans votre variable d’environnement PATH.
Vous utilisez le système d’exploitation Windows que mongoose ne prend pas en charge. Il ressort de ce message d'erreur:
C:\>npm install mongoose
npm http GET https://registry.npmjs.org/mongoose/2.5.10
npm http 304 https://registry.npmjs.org/mongoose/2.5.10
npm http GET https://registry.npmjs.org/hooks/0.2.0
npm http GET https://registry.npmjs.org/mongodb/0.9.9-4
npm http 304 https://registry.npmjs.org/mongodb/0.9.9-4
npm http 304 https://registry.npmjs.org/hooks/0.2.0
npm WARN package.json [email protected] No README.md file found!
npm ERR! notsup Unsupported
npm ERR! notsup Not compatible with your operating system or architecture: mongo
[email protected]
npm ERR! notsup Valid OS: linux,darwin,freebsd
npm ERR! notsup Valid Arch: any
npm ERR! notsup Actual OS: win32
npm ERR! notsup Actual Arch: x64
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "mongoose"
npm ERR! cwd C:\
npm ERR! node -v v0.8.18
npm ERR! npm -v 1.2.2
npm ERR! code EBADPLATFORM
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\npm-debug.log
npm ERR! not ok code 0