Экспресс не работает на ubuntu
Я новичок в nodejs и пытаюсь его изучить. Я установил node framework express как глобальный модуль по команде:
$ sudo npm install express -g
Это работает правильно, и я использую его в /usr/lib/node_modules
. Затем я создаю новый проект для выражения:
$ express app
Но это не создает папку проекта и не возвращает код ошибки, очистка node работает нормально. Кто-нибудь знает, как обнаружить и исправить эту ошибку?
Ответы
Ответ 1
Первое, что нужно попробовать, - установить плагин:
$ npm -g ls | grep express
Если ничего не возвращается, попробуйте переустановить его.
Поскольку в этом случае он все еще был установлен, следующим решением было полностью установить Node.
Есть отличный пост по очистке установок Node здесь: Удалить Node.JS с помощью командной строки Linux?
Ответ 2
нашел его. пакет npm на самом деле называется экспресс-генератором
sudo npm install -g express-generator
вы можете использовать
express mytestapp
что приводит к:
[email protected]****:~/workspace$ express mytestapp
create : mytestapp
create : mytestapp/package.json
create : mytestapp/app.js
create : mytestapp/public
create : mytestapp/public/javascripts
create : mytestapp/public/stylesheets
create : mytestapp/public/stylesheets/style.css
create : mytestapp/routes
create : mytestapp/routes/index.js
create : mytestapp/routes/users.js
create : mytestapp/views
create : mytestapp/views/index.jade
create : mytestapp/views/layout.jade
create : mytestapp/views/error.jade
create : mytestapp/bin
create : mytestapp/bin/www
create : mytestapp/public/images
install dependencies:
$ cd mytestapp && npm install
run the app:
$ DEBUG=my-application ./bin/www
Приветствия!
Оливье
Источник: http://expressjs.com/guide.html#executable
Ответ 3
Для меня решение было просто установить пакет nodejs-legacy:
sudo apt-get install nodejs-legacy
Ответ 4
Это то, что я сделал, чтобы заставить мое работать и убедиться, что все работает нормально на Ubuntu 12.04, работающем под Node 0.8.21 и Express 3.2.0.
Сначала установите express
sudo npm install –g express
Теперь проверьте, работает ли экспресс, запросив его для версии:
express -V
Теперь я пошел и создал экспресс-приложение:
cd /usr/lib/node_modules
sudo express -s -e expressTestApp
Вышло следующее:
create : expressTestApp
create : expressTestApp/package.json
create : expressTestApp/app.js
create : expressTestApp/public
create : expressTestApp/public/javascripts
create : expressTestApp/public/images
create : expressTestApp/public/stylesheets
create : expressTestApp/public/stylesheets/style.css
create : expressTestApp/routes
create : expressTestApp/routes/index.js
create : expressTestApp/routes/user.js
create : expressTestApp/views
create : expressTestApp/views/index.ejs
install dependencies:
$ cd expressTestApp && npm install
run the app:
$ node app
Итак, следуя инструкциям, которые он дал мне, я последовательно выполнил следующие две команды:
cd expressTestApp
sudo npm install
Через минуту он закончил, и я смог открыть /urs/lib/ node_modules/app.js и работать с ним. Кроме того, работало приложение Node, как указано в инструкциях во время создания экспресс-модуля.
Из предыдущего комментария похоже, что вы, возможно, исправили его, переустановив node, но я все еще надеюсь, что это вам поможет.
Ответ 5
Возможно, sudo express app
может сделать трюк? (Я вижу, что вы выполняете в /var/www
, который обычно отключен от обычных пользователей?)
Ответ 6
Как и Ubuntu 16.04 LTS, проблема возникает, когда экспресс установлен глобально. Чтобы исправить это, убедитесь, что вы устанавливаете express в свой рабочий каталог, даже если вы установили его глобально.
Используйте
sudo npm i express-generator --save
чтобы сохранить его в рабочем каталоге в каждом проекте.
Если бы эта проблема и была легко исправлена, без необходимости переустановки nodejs или любой другой зависимости.