2013-07-13 4 views
3

Я не знаю, что вызывает эту проблему, потому что я думал, что она должна работать. Я выразивший установлен, по крайней мере, в соответствии с НПМ:узел не может найти экспресс-модуль?

C:\Users\phucker\Desktop>node init.js 

module.js:340 
    throw err; 
     ^
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:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (C:\Users\phucker\Desktop\init.js:1:77) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 

C:\Users\phucker\Desktop>npm express -v 
1.3.2 

C:\Users\phucker\Desktop> 

код, содержащийся в init.js является

var express = require('express'); 
var app = express(); 

app.get('/', function(req, res){ 
    res.send('hello world'); 
}); 

app.listen(3000); 

ответ

3

Вы должны иметь express установлены локально в папке node_modules. Проверьте свой node_modules и установите его снова, если его нет

+0

Почему? Какой смысл устанавливать что-то глобально, если его нельзя использовать «глобально»? –

+0

@Sosukodo - очень хорошее объяснение этому - на блоге [npm blog] (http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation) глобальные установки хорошо, если вы хотите использовать исполняемый файл из своей оболочки. Для использования их в качестве библиотеки в вашей программе предпочтительнее устанавливать их локально. Хотя вы можете создавать символические ссылки и из глобальных установок. –

2

npm express -v не показывает версию Express, что вы установили, что показывает версия npm.

Чтобы показать, какую версию Express, вы установили, попробуйте следующее:

npm ls express 
2

Возможно, это не ваша проблема, но это часто путающее различие между глобальными и локальными установками для новичков. Если вы используете require('module_name') в своем коде, каждый модуль должен быть установлен локально с использованием npm install module_name или с использованием зависимостей в package.json.

Глобальная установка предназначена только для запуска таких команд, как express my_new_project.

Вы можете перечислить все установленные локальные модули для фактического каталога с помощью npm list и всех глобальных запусков npm list -g.

0

Пожалуйста, проверьте следующее, если вы установили выразить глобально

т.е. с помощью команды npm install -g express

  1. Проверьте, экспресс-модуль импортируется в вашем коде, используя

    уаг экспресс = требуется (» экспресс ')

  2. На окнах проверьте, находится ли путь C:\Users\<user_name>\AppData\Roaming\npm на PATH enviro nment переменная

Для установок, которые не имеют экспресс установлены глобально

  1. Перейдите к вам папку C: узел проекта \
  2. Выполните локальную установку Экспресс использованием npm install express
  3. Импорт экспресс-модуль в вашем коде, используя var express = require('express')
Смежные вопросы