Экспресс не работает на 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 или любой другой зависимости.