2013-07-13 189 views
3

我不知道什麼是造成這個問題,因爲我認爲它應該工作。我都表示安裝,至少根據NPM:節點無法找到快速模塊?

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

你需要有expressnode_modules文件夾本地安裝。檢查你的node_modules,如果它不存在,再次安裝它

+0

爲什麼?如果不能在全球範圍內使用,能夠在全球範圍內安裝某些東西的意義何在? – 2014-08-27 19:38:55

+0

@Sosukodo對此的一個很好的解釋是在[npm博客](http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation)全球安裝如果你想使用你的shell中的可執行文件,那就好了。要在程序中將它們用作庫,最好在本地安裝它們。儘管您也可以從全局安裝中創建符號鏈接。 –

2

npm express -v不表明您已經安裝了快車的版本,它顯示版本npm

要顯示已安裝的快速的版本,試試這個:

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. 檢查Express模塊​​在使用

    VAR快遞=需要你的代碼輸入(」快遞')

  2. 在窗口上檢查路徑C:\Users\<user_name>\AppData\Roaming\npm是否在PATH環境中市民明白可變

對於那些沒有明示全球的裝機量

  1. 導航到你夾C安裝:使用npm install express
  2. 進口快件模塊\節點項目
  3. 做快遞的本地安裝在您的代碼中使用var express = require('express')