2013-09-23 71 views
38

我安裝在C的NodeJS:\程序文件(x86)\的NodeJS module.js:340錯誤:無法找到模塊

的NodeJS

然後我創建了一個.js文件並將其保存在我的桌面只是爲了輸出「你好世界在控制檯:

console.log('hello world'); 

當我試圖從運行命令提示符下的文件:

C:\Users\Laura>cd desktop 
C:\Users\Laura\Desktop>node nodeTest.js 

我得到:

module.js:340 
throw err; 
    ^
Error: Cannot find module 'C:\Users\Laura\Desktop\testNode.js' 
at Function.Module._resolveFilename (module.js:338:15) 
at Function.Module._load (module.js:280:25) 
at Function.Module.runMain (module.js:497:10) 
at startup (node.js:119:16) 
at node.js:901:3 

我讀了很多其他相關的問題,其中一些人建議運行安裝,所以我做了。

C:\Users\Laura>npm install -g express 

但沒有運氣,仍然收到相同的錯誤信息。

+1

帶'npm install -g express'的部分根本沒有意義。 – TheHippo

+2

從錯誤信息中,我會建議你拼錯你的終端/控制檯上的文件名。 – TheHippo

+1

確實,一個是testNode.js,另一個是nodeTest.js? –

回答

2

嘗試鍵入到這個節點的命令行環境:

.load c:/users/laura/desktop/nodeTest.js

它應該爲你想要做的事情工作。

如果您想直接調用該文件,您必須將其放在Node安裝所在的根目錄中。

+0

謝謝@Shmuli您的評論。正如TheHippo和lightblade指出的那樣,當我提交我的問題時,我做了一個錯字。該文件的實際名稱是testNode.js。無論如何,我嘗試使用正確的文件名稱的建議,但沒有奏效。我輸入:> .load .c:\ users \ laura \ desktop \ testNode.js 我得到了:加載失敗:.c:\ users \ laura \ desktop \ testNode.js –

+0

Oh,sorry @Laura Martinez。你可以這樣做:'.load c:/ users/laura/desktop/testNode.js'。 (必須在'c:/'之前拿掉這段時間......)我試過了,它可以工作。很高興你知道這是一個錯字問題......我回去糾正我的答案。 – shmuli

+0

我仍然收到失敗消息。 >> .load c:/users/laura/desktop/testNode.js >加載失敗:c:/users/laura/desktop/testNode.js –

17

我曾經遇到與某人曾經寫過一段時間的服務器相同的問題。事實證明,我沒有安裝該腳本所需的一些東西。

This question對我有幫助。

我最終能夠使用:

npm install yourMissingDependency 

儘管在你的情況下,可能僅僅是因爲它沒有一個路徑的文件。 您可以嘗試將該文件放在您正在運行節點腳本的同一文件夾中。

3

重新啓動命令提示符並檢查您的路徑變量(類型:路徑)。 如果你找不到找到nodejs安裝目錄從輸出添加到路徑變量,並記得重新啓動cdm ...

0

我有同樣的問題,然後我發現我沒有擊中節點服務器命令在server.js所在的正確目錄中。

希望這會有所幫助。

2

我有一個幾乎相同的問題,原來我的JS文件實際上並不在我打電話給它的文件夾中,而且我已經去了一個太深的文件夾。 我上了一個目錄,運行了這個文件,它很快樂地認出了它。

或者,如果你去了一個文件夾,並且它給了你相同的錯誤,但是關於一個不同的模塊,把你父文件夾中的同一個文件移動到你以前試圖運行的子文件夾中。

TL; DR-您的文件或其模塊不在您認爲它的文件夾中。向上一級

0

嘗試npm install --production然後npm start。對於這個問題

npm link e 
0

簡單的方法我也有這個問題,這是由於我們運行時提錯了路。檢查您的文件路徑,並確保您的目錄名稱之間沒有空格。

0

4

我認爲問題是NODE_PATH環境變量。我有同樣的問題,但一旦我發佈(在Windows上)

set NODE_PATH=C:\Users\MyUser\node_modules 

然後一切正常。

乾杯,

1

我面臨同樣的問題。我只是複製testNode.js文件(包含測試代碼)並手動粘貼到nodejs目錄的根目錄中。我試過這個命令C:\Program Files (x86)\nodejs>node testnode.js 賓果!我收到了這條消息。

enter image description here

然後我在瀏覽器中輸入這個網址,並收到消息的「Hello World」。 希望這有助於某人。

0
  1. 嘗試在Node.js命令提示符下嘗試npm start
  2. 看消息的結尾 - 它可以讓你的日誌文件的路徑「額外的日誌記錄詳細信息...」像c:\users\MyUser\npm-debug.log
  3. 用記事本打開該文件,並找到Node.exe的真實地址: 像C:\\Program Files\\nodejs\\\\node.exe
  4. 嘗試cd到這個路徑
  5. 呼叫node.exe + <full path to your server file.js>

    Server is listening on port 1337 ! 
    
31

編輯:此答案已過時。有了諸如Yarn和NPM 5的lockfiles之類的東西,現在可以更容易地確保您在Heroku等平臺上的依賴關係是正確的

我有一個類似的問題,與node_modules在某種程度上被本地修改,但並未反映在Heroku上,導致我的應用程序崩潰。這是相對容易的修復,如果這是你的問題:

# Remove node_modules 
rm -fr node_modules 

# Reinstall packages 
npm i 

# Commit changes 
git add node_modules 
git commit -m 'Fix node_modules dependencies.' 
git push heroku master 

希望幫助其他人有類似的問題。

+6

對於所問的問題,您是正確的。但是,[檢入'node_modules']是一個非常糟糕的主意(http://stackoverflow.com/a/19416403/568785)。雖然Heroku推薦它,但Node.JS buildpack將在部署時自動運行'npm install'。沒有必要檢查你的版本庫中不是你自己的代碼,然後將一堆原子提交/更改到你的依賴關係中。 –

+1

當我推薦的方法是版本控制mode_modules時,我寫了這個,但是對於讀這個的人來說,現在試着避免版本控制。 –

+0

我使用了前兩個命令(刪除node_modules /重新安裝軟件包),並使用魅力。謝謝! – Ricardo

0

我有同樣的問題,但最後我試圖複製相同的項目文件夾中的Node_modules文件夾,它的工作。

0

確保您將該文件保存爲JavaScript。在「文件夾選項」窗口中勾選「隱藏所有已知類型的擴展名」複選框將顯示正確的文件擴展名(文件夾>>視圖>>選項)。

-1

嘗試運行節點紅色時遇到同樣的問題。

node <directory structure where js is located>/red. js 

在我的情況是:

node AppData/Roaming/npm/node_modules/node-red/red.js 
2

您需要:

  • 從Windows資源管理器的文件夾選項裏刪除的Hide extensions for known file types
  • 您的文件將顯示爲testNode.js.txt
  • 刪除尾部.txt以便將文件解析爲JS文件

就是這樣,現在它的工作原理!

0

喜同胞的PhoneGap /科爾多瓦/離子開發商,

I solved this issue by doing the following 

    1. C: drive -> Users -> "username" eg. john -> AppData -> Roaming 

    2. Inside the "Roaming" folder you need to delete both "npm" and "npm-cache" 
     folder. 

    3. Now build your project, and it should work 

編碼愉快!