Ответ 1
пытается установить эту команду:
npm install mongoose
не используйте ключ -g.
BTW: Я выполнил командную строку в режиме администратора.
http://prazjain.wordpress.com/2012/04/24/node-js-error-error-cannot-find-module-xyz/
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)
Я уже установил его с помощью установки npm, и я попытался переустановить, но это не сработало никаких идей?
пытается установить эту команду:
npm install mongoose
не используйте ключ -g.
BTW: Я выполнил командную строку в режиме администратора.
http://prazjain.wordpress.com/2012/04/24/node-js-error-error-cannot-find-module-xyz/
Вы можете сделать одно из двух действий, чтобы запустить: -
1) Установить mongoose глобально с помощью следующих шагов: -
а) npm install mongoose -g
b) Перейдите в каталог приложений, где находится bot.js, а затем запустите
npm link mongoose
Объяснение: - Когда вы устанавливаете пакет по всему миру через npm, он загружается в глобальную папку node_module. Для меня (пользователь Mac) он находится под /usr/local/lib/ node_modules/mongoose. Мы связываем это с тем каталогом, из которого вы пытаетесь запустить module.js.
2) Другой подход - установить локальную локальную локальную сеть, а не глобально через
npm install mongoose
После выполнения любого из этих действий вы увидите папку node_modules → mongoose в каталоге "bot.js", что означает, что mongoose был успешно установлен.
Теперь запустите node bot.js, он будет работать.
Установите с помощью опции --save
:
npm install mongoose --save
Это добавляет mongoose к package.json
, который Heroku использует для создания вашего приложения.
Вам нужно вызвать в командной строке
npm install mongoose
не забудьте вызвать эту команду из корневого пути вашего проекта
npm install mongoose
он будет работать, и если все будет в порядке, вы получите следующее в терминале
[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])
У меня была такая же проблема на моем Mac, и я сделал поиск в центре внимания и обнаружил, что mongoose установлен в /usr/local/ node_modules (когда я запускал npm install mongoose). Перемещение папки mongoose в ~ (home) node_modules, где npm поддерживается для фактической установки исправленной моей проблемы.
npm install создает "node_modules" в pwd (настоящий рабочий каталог)
по мере роста вашего приложения число растущих модулей и лучший подход - поддерживать package.json(ссылка: fooobar.com/questions/246197/...), а затем выдавать только "npm install" вместо установки каждого.
Как расширение при развертывании приложения на таких платформах, как Heroku, вы можете игнорировать (git игнорировать) свой огромный каталог node_modules вашего проекта. Heroku устанавливает ваши зависимые модули, читая ваш package.json
этот подход заставляет нас создавать те же требуемые модули node для каждого из наших проектов на основе node, но это нормально, поскольку нам нужно выпустить команду "npm install" только один раз для проекта
Если вы уже установили mongoose по всему миру (npm install -g mongoose), тогда сделайте
% npm link mongoose
в каталоге проекта. Это сработало для меня.
в каталоге bot.js, есть ли папка node_modules, в которой есть папка mongoose? Работает ли ваш сервер mongodb?
Вы можете протестировать его также, находясь в корневом каталоге проекта, вызывая node (без аргументов, чтобы открыть REPL) и пытаться найти там мангуст.
Вы используете операционную систему Windows, которую mongoose не поддерживает. Из этого сообщения об ошибке видно:
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
на окнах, если вы делаете
npm install mongoose
он установит его по умолчанию на ваш C:\Drive
и если вы попытаетесь запустить некоторый файл *.js, скажем, D:\drive
он даст вам ту же ошибку.
поэтому я думаю, что каталог установки и файл *.js должны иметь один и тот же корень.
Из doc/blog
В общем, эмпирическое правило:
Если вы устанавливаете что-то, что хотите использовать в своей программе, используя require ('whatever'), затем установите его локально, в корень ваш проект.
Если вы устанавливаете что-то, что хотите использовать в ваша оболочка, в командной строке или что-то еще, установите ее по всему миру, поэтому что его двоичные файлы попадают в вашу переменную среды PATH.
Просто откройте папку вашего проекта в командной строке и выполните команду ниже, чтобы можно было добавить зависимость mongoose в файл package.json. Я на 100% уверен, что вы больше не получите такую ошибку.
$ sudo npm install --save мангуст