2013-06-12 15 views

Odpowiedz

49

Wygląda na to, że zainstalowano socket.io w innym miejscu niż obecna ścieżka. Albo zainstalować globalnie jak poniżej:

npm install -g socket.io

lub odniesienie lokalizację masz zainstalowane:

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

Zrobiłem i zdobyłem – DmitriyB

+0

@ajtrichards - dla mnie to nie działa, gdy uruchamiam węzeł z crontab, przynajmniej przy restarcie. Gdybym dodał pełną ścieżkę do funkcji require(), wierzę, że to zadziała, wtedy –

0

Myślę, że wykonał polecenie npm install socket.io w innym miejscu, a pliki są w innym katalogu. Komendę należy uruchomić w tym samym katalogu, w którym znajdują się pliki, albo podać ścieżkę, w której zainstalowano plik socket.io w zmiennej PATH.

+1

Proszę dodać trochę kontekstu do swojej odpowiedzi –

+0

@ AlecHenderson_v1.00 Zasadniczo mówię to; możesz mieć katalog z napisem "ABC", gdzie masz pliki node.exe i npm.cmd (jeśli używasz systemu operacyjnego Windows), więc będziesz miał także folder node_modules, więc musisz się upewnić, że za każdym razem, gdy instalujesz dowolny moduł, który najpierw zmieniasz katalog w cmd i osiągasz tam np. w "ABC". Upewnij się również, że masz ścieżkę "ABC" wymienioną w zmiennej PATH. –

8

Dzięki ajtrichards!

Wystarczy dodać do odpowiedzi - w przypadku, gdy proste użycie

sudo npm install socket.io 

Ścieżka instalacji będzie

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

Jeśli używasz sudo npm zainstalować -g socket.io

Ścieżka instalacji będzie

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

W pierwszym przypadku próbowałem dodać ścieżkę socket.io do zmiennej ścieżki globalnej, ale nie działało.

4

Miałem ten sam problem z wersją 0.12.0 w systemie Windows. Próbowałem npm install -g socket.io, ale to niczego nie zmieniło. Wypróbowałem także npm cache clean również bez zmian, ale po aktualizacji npm npm -g, wszystko poszło dobrze.

+0

To nie naprawiło tego za mnie w oknach, ale dzięki za sugestię! –

1

To niemal dzieje niż postarać się socket.io w was pliki html jak:

index.html

gdzie trzeba:

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

Nie znajdzie socket.io bo ciebie nie uruchomiono modułu w pliku aplikacji, który zawiera serwer taki jak

server.js

musi zawierać następujące linie po rozpoczął swój serwer w server.js:

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

Nadziei, pozwoli zaoszczędzić czas.

Powiązane problemy