2013-06-12 708 views

回答

49

看起來您已將socket.io安裝在與當前路徑不同的位置。無論是在全球安裝象下面這樣:

npm install -g socket.io

或參考位置你已經安裝到:

var io = require('../lib/socket.io'); 
+1

var io = require('/ root/node_modules/socket.io/lib/socket.io'); var express = require('/ usr/local/lib/node_modules/express/lib/express.js'); – DmitriyB

+1

我賺取和賺取 – DmitriyB

+0

@ajtrichards - 對我來說,這不起作用,當我從crontab運行節點時,至少在重新啓動時。如果我要添加require()函數的完整路徑,我相信它會工作,然後 –

0

我認爲你已經在不同的位置執行命令npm install socket.io 和你的文件在不同的目錄中。 因此,無論是在你的文件所在的同一目錄下運行該命令,還是在PATH變量中提及當前安裝socket.io的路徑。

+1

請在你的回答 –

+0

@ AlecHenderson_v1中加入更多的上下文。00基本上我是這樣說的;你可能有一個名爲「ABC」的目錄,其中有你的node.exe文件和npm.cmd(如果你使用的是Windows操作系統),所以你也可以有一個node_modules文件夾,所以你必須確保每當你安裝任何模塊,你首先改變目錄在CMD,並達到那裏,即在「ABC」。還要確保你有PATH變量中提到的「ABC」的路徑。 –

8

感謝ajtrichards!

我想補充的答案 - 如果你簡單的使用

sudo npm install socket.io 

安裝路徑將是

/home/.../.npm/socket.io 

如果使用 須藤NPM安裝-g socket.io

安裝路徑爲

/usr/local/lib/node_modules/socket.io 

在第一種情況下,我嘗試在全局路徑變量中添加socket.io路徑,但它不起作用。

4

我在Windows上遇到了與0.12.0版本相同的問題。我試過npm install -g socket.io但這並沒有改變任何東西。也試過npm緩存清理也沒什麼變化,但是在npm更新npm -g之後,情況變好了。

+0

這並沒有真正爲我在Windows上排序,但也謝謝你的建議! –

1

這幾乎恰好比你試圖讓socket.io在你的HTML文件,如:

index.html

,你必須:

< script type="text/javascript" src="/socket.io/socket.io.js"></script> 

它不會找到socket.io因爲你沒有啓動模塊在你的應用程序文件,它包含服務器像

server.js

您必須包括以下各行開始後,你的服務器在server.js

var io = require('socket.io').listen(server); 

希望,可以節省時間。