Получение ошибки при запуске базового проекта Express - PullRequest
5 голосов
/ 18 марта 2012

Я впервые возился с Node.js и решил создать простое приложение с использованием Express.Я следовал инструкциям github в пустом каталоге, например:

npm install -g express
express
npm install -d
node app.js

При переходе на localhost:3000 я получаю следующую ошибку:

Express
500 Error: Cannot find module './lib/jade'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at Object. (C:\dev\gravity_kata\node_modules\jade\index.js:4:5)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Module.require (module.js:354:17)

Когдаглядя под node_modules\jade\lib Я вижу все библиотечные файлы Джейд, но нет папки jade.Поэтому я создал папку в lib с именем jade и переместил туда файлы библиотеки, и теперь мое приложение по умолчанию работает.

Теперь, поскольку у меня почти нет опыта работы с Node.js и Express, я почти уверен, что сделалчто-то не так.Кто-нибудь знает, что здесь происходит?

Редактировать:

Я углубился в код Jade.Для файла Jade index.js требуется lib\jade, а в папке lib не было файла jade.js.Ну, это проблема, но почему отсутствует файл jade.js?При извлечении Jade source из npm в каталоге lib находится файл jade.js.Я скопировал папку lib из загруженного исходного кода в модуль Jade для моего проекта, и теперь он работает нормально.

Так что по какой-то причине npm не вытаскивает файл jade.js.Версия в файле packages.json соответствует источнику, который я выбрал, 0.21.0.У кого-нибудь есть идея, почему это произошло?

Ответы [ 5 ]

11 голосов
/ 18 марта 2012

перейдите в папку вашего экспресс-проекта и запустите "npm install", это установит все зависимости

2 голосов
/ 23 марта 2012

Для меня в windows исправлена ​​нефритовая версия 0.22.0.

2 голосов
/ 18 марта 2012

это, вероятно, связано с тем, что вы установили Express глобально (-g), но npm install -d был сделан локально.попробуйте установить их оба глобально или, как я бы предпочел, оба локально:

sudo npm uninstall express -g
npm install express
npm install jade (or npm install -d)
0 голосов
/ 30 января 2016

Я только что нашел эту проблему с ошибкой нефритового модуля.Похоже, нефритовая папка не была создана автоматически (какая-то ошибка).Теперь я решил это с переустановить Джейд.После этого нефритовая папка была создана автоматически.используйте npm для удаления gulp-jade , а затем снова установите gulp-jade

0 голосов
/ 18 марта 2012

Действительно убедитесь, что все модули require s верны.Javascript очень забавно рассказывать вам, что на самом деле не так.Попробуйте удалить строку шаблона нефрита и посмотрите, что произойдет потом.

...