Ответ 1
В нем говорится
Cannot find module 'express'
У вас есть установленная функция? Если нет, запустите это.
npm install express
И запустите свою программу еще раз.
Я новичок в node.js, попробуйте научиться выражать свое первое веб-приложение. застрял на моем самом первом примере кода. нужна помощь, чтобы заставить его работать. Прежде чем я опубликую этот вопрос, я просмотрел переполнение стека, нашел некоторые подобные вопросы, но не смог его исправить.
Ошибка: не удается найти модуль 'express'
Я использую mac os 10.8.2. У меня есть node.js, установленный с помощью nvm.
node.js: 0.8.20 путь к node:/Users/feelexit/nvm/v0.8.20/bin/nodeпуть для выражения:/Пользователи/feelexit/nvm/node_modules/express
здесь мой пример кода: этот файл находится по адресу:
/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('welcome to express');
});
app.listen(3000);
когда я пытаюсь запустить этот файл node index.js "
Я получаю следующее сообщение об ошибке, пожалуйста, помогите мне исправить это. спасибо.
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
feelexits-Mac:node_modules feelexit$
Обновить, чтобы ответить на chovy вопрос:
feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/feelexit/npm-debug.log
npm ERR! not ok code 0
В нем говорится
Cannot find module 'express'
У вас есть установленная функция? Если нет, запустите это.
npm install express
И запустите свою программу еще раз.
После того, как вы выразите в своем терминале, сделайте
npm install
Чтобы установить все зависимости.
Затем вы можете сделать приложение node для запуска сервера.
Проверьте, установлен ли модуль express
. Если нет, используйте следующую команду:
npm install express
и если ваш каталог node_modules
находится в другом месте, установите переменную NODE_PATH
envirnment:
set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
npm install из каталога вашего приложения будет исправлять проблему, поскольку она будет устанавливать все необходимое
Выкапывая старый поток здесь, но у меня была такая же ошибка, и я решил, перейдя в каталог, в котором находится мой NodeApp и работает npm install -d
У вас есть экспресс-модуль, расположенный в другой директории, чем ваш проект. Вероятно, это проблема, так как вы пытаетесь локально require()
. Попробуйте переместить свой экспресс-модуль из /Users/feelexit/nvm/node_modules/express в /Users/feelexit/WebstormProjects/learnnode/node_modules/express. Эта информация может предоставить вам более подробную информацию о структурах файлов node_module.
если основной файл youre находится в /Users/feelexit/WebstormProjects/learnnode/node_modules/index.js
, тогда выражение должно быть расположено
at /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules
, поскольку node всегда ищет модули в ./node_modules
(и его внутреннюю папку)
когда путь не начинается с ./
или /
(подробнее здесь)
Я думаю, вы пропустили основной файл youre в папке модуля
для этого сценария выполните команду npm install express, используя команду cmd для соответствующей папки, в которой вы хотите запустить программу. Пример. Я хочу запустить программу экспресс-модуля server.js в F:\nodeSample. Поэтому запустите "npm install express" в этой конкретной папке, затем запустите server.js
Если вы не установите Node_PATH, единственным вариантом будет установка express в каталоге приложения, например npm install express --save
.
Express может быть уже установлен, но node
не может найти его по какой-либо причине
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
Это происходит из-за отсутствия разрешений или несвязанных файлов во время работы npm.
Значение, выполняющее npm
, поскольку этот пользователь не имеет достаточных прав для чтения/записи из файла, в этом случае package.json.
попробуйте добавить sudo
перед всей командой - он должен решить.
$ sudo npm install -g express
$ Password:*******
Пароль будет вашим паролем администратора вашего Mac.
Флаг -g
установит этот модуль (экспресс) в глобальном контексте node - значит node будет/должен распознавать модуль express
из любого js файла без необходимости предоставления полного пути к модулю в использовании.
Надеюсь, это поможет!
У меня была та же проблема. Моя проблема заключалась в том, что перед установкой express я должен перейти в каталог проекта Node.js в командной строке.
cd /Users/feelexit/WebstormProjects/learnnode/node_modules/
Я предполагаю, что это курсовая работа из курса Colt Steele Web Development... Я искал тот же ответ, почему я тоже закончил эту ошибку. Кольт не говорит об этом, но вы берете node_module и перейдите в новую папку, в которой вы работаете... что то, что сработало для меня.
Запустите команду npm install express body-parser cookie-parser multer --save
в том же каталоге с исходным кодом nodejs, чтобы решить эту проблему.
P/s: проверьте свою директорию после запуска, чтобы понять больше!
В редких случаях кеш npm может быть поврежден. Для меня работала:
npm cache clean --force
Как правило, диспетчер пакетов будет обнаруживать коррупцию и повторный набор самостоятельно, поэтому это обычно не требуется. Однако в моем случае Windows 10 разбилась несколько раз, и я подозреваю, что это могло быть во время операции выборки. Надеюсь, это поможет кому-то!
Дополнительная информация: https://docs.npmjs.com/cli/cache