Całkowita liczba węzłów tutaj. Próbowałem skonfigurować przykładową aplikację węzła, ale za każdym razem, gdy próbuję uruchomić, pojawia się następujący błąd:
aplikacja węzła
Failed to load c++ bson extension, using pure JS version
events.js:72
throw er; // Unhandled 'error' event
^
Error: failed to connect to [#$%67890 :27017]
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:830:16
at process._tickCallback (node.js:415:13)
failed to connect to
taki, więc myślę, że tabson
wiadomość może być niezwiązana i właściwie nie ma znaczenia. Czy na pewno ustawienia połączenia Mongo są prawidłowe?Odpowiedzi:
Wydaje mi się, że nie miałeś narzędzi do udostępniania, gdy instalowałeś swoją bibliotekę mongodb. Proponuję ci
xcode-select --install
(na komputerze Mac) lubsudo apt-get install gcc make build-essential
(na Ubuntu)i biegnij
LUB po prostu aktualizacja npm na podstawie komentarza @tobias (po instalacji niezbędnej do kompilacji)
źródło
mongoskin
modułu.sudo apt-get install gcc make build-essential
wskazówka jest jedną z najlepszych wskazówek dla deweloperów Node.js + Ubuntu, jakie kiedykolwiek widziałem. Jest to absolutnie zmieniacz gier, jeśli jesteś przyzwyczajony do tworzenia aplikacji internetowych i programowania w Node.js na Ubuntu.gcc
imake
wraz z niąbuild-essential
? To drugie zależy od dwóch pozostałych, więc i tak zostaną zainstalowane ( packages.ubuntu.com/trusty/build-essential ). Robieniesudo apt-get install build-essential
powinno wystarczyć.Właśnie to rozwiązałem.
Kiedy instalujesz moduł mangusty przez npm, nie ma on wbudowanego modułu bson w swoim folderze. W pliku
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
zmień wierszdo
a następnie zainstaluj moduł bson za pomocą npm.
źródło
Rozwiązałem problem związany z uzyskiwaniem „Nie udało się załadować rozszerzenia bson c ++” w systemie raspbian (debian dla malin) według:
i wtedy
źródło
npm update
, nawet bez instalowania czegokolwiek innego.Nie byłem w stanie rozwiązać tego
do teraz. Przede wszystkim musisz mieć pakiety systemowe wymienione przez Pradeep Mahdevu. To są:
lub
Potem zainstalowałem Gyp
jak powiedział datadracer, ale sugerowana przez niego aktualizacja npm jest ryzykowna. Aktualizuje wszystkie moduły, które mogą być niebezpieczne (czasami zmiany API między wersjami).
Sugeruję przejście do katalogu node_modules / mongodb / node_modules / bson i stamtąd użyj
To rozwiązało problem dla mnie.
źródło
apt-get install python
), a następnie z poziomunode_modules/mongoose/node_modules/mongodb/node_modules/bson/
uruchamianiamake
. To stworzyłoRelease/bson.node
.Częstym problemem jest to, że węzeł-gyp wymaga Pythona 2.x i jeśli twój system
python
wskazuje na 3.x, kompilacja nie powiedzie siębson
bez ostrzeżenia. Możesz to naprawić, ustawiającpython
globalny klucz w konfiguracji npm, który wskazuje na plik wykonywalny 2.x w twoim systemie. Na przykład w Arch Linux:źródło
W WIN 8.1
Wygląda na to, że użyłem niewłaściwej wersji mangusty
package.json
pliku.Usunąłem linię
"mongoose" : "^3.8.15"
zpackage.json
.CLI:
Teraz mówi
"mongoose": "^4.0.6"
siępackage.json
, a błąd miałem już nie ma.źródło
Używam Ubuntu 14.04 i aby to naprawić, musiałem utworzyć dowiązanie symboliczne dla węzła, aby wskazywał na nodejs jak opisano tutaj:
nodejs vs node na Ubuntu 12.04
Kiedy to zrobiłem, ponownie uruchomiłem następujące polecenia:
źródło
Więc w moim przypadku najpierw próbowałem sprawdzić w tym katalogu / node_modules / mongoose / node_modules / , tylko po to, aby potwierdzić, że mam moduł bson . Doszedłem do wniosku, że nie mam go w pierwszej kolejności, a potem po prostu biegnę
i wtedy
Wszystko zostało posortowane. Wypróbowane i przetestowane w Ubuntu.
źródło
make
w/devel/node_modules/bson/
npm install bson
chciałem tylko powiedzieć, że również miałem błąd
Ale bez innych błędów. Próbowałem wszystkiego i okazało się, że sterowniki mongodb, które określiłem w pliku package.json, były niezgodne z moją wersją MongoDB. Zmieniłem go do mojej najnowszej wersji (1.4.34) i działało !!!
źródło
sudo npm rebuild
właśnie to mnie naprawiło.źródło
W końcu poprawiłem ten błąd, aktualizując moją wersję zależności mongodb do ~ 2.0.36 w
package.json
.źródło
Niestety, wszystkie powyższe odpowiedzi są tylko w połowie poprawne. Długo to trwało.
Mongoose bson install przez npm rzuca ostrzeżenie i powoduje błąd ...
To działa jak magia !!
źródło
$ node gyp rebuild module.js:341 throw err; ^ Error: Cannot find module '/private/tmp/js-bson/gyp' at Function.Module._resolveFilename (module.js:339:15) at Function.Module._load (module.js:290:25) at Function.Module.runMain (module.js:447:10) at startup (node.js:140:18) at node.js:1001:3
Dla mnie wystarczy uruchomić następujące polecenia w katalogu api:
źródło
Właśnie pobiegłem:
i
i wszystko jest w porządku.
źródło
Komunikat rozszerzenia bson jest tylko ostrzeżeniem , cały czas otrzymuję go w mojej aplikacji nodejs.
Rzeczy do sprawdzenia:
źródło
Rozwiązałem ten problem na CentOS przez
źródło
Naprawiłem to, zmieniając wiersz 10:
z:
do:
źródło
Mam również ten problem, który spowodował, że moje sesje nie działały. Ale żeby nie złamać ...
Użyłem połączenia mangusty.
Miałem to:
Bardzo proste. Ale wymaganie pozostało zawsze puste.
Wykonał lewę. Uważaj, że nie masz „mongodb” w pakiecie.json! Tylko Mongoose i Connect-Mongo.
źródło
Oto jak naprawiłem problem na Ubuntu:
ln -s /usr/bin/nodejs /usr/bin/node
npm install node-gyp
cd node_modules/mongodb/node_modules/bson
node-gyp rebuild
Zainspirowany odpowiedzią @mbochynski, ale najpierw musiałem utworzyć dowiązanie symboliczne, w przeciwnym razie przebudowa się nie powiedzie.
źródło
Miałem takie same problemy, wypróbowałem tak wiele opcji, ale w ostatniej
npm intall
w mojej średniej działał folder aplikacji.źródło
Miałem ten problem, ponieważ dołączałem folder node_modules do mojego repozytorium Git. Kiedy odbudowałem node_modules w innym systemie, zadziałało. Jeden z nich działał na Linuksie, drugi OS X. Być może mieli też inną architekturę procesorów.
źródło
Miałem ten sam problem z moją instancją EC2. Myślę, że początkowa przyczyna była spowodowana działaniem instancji Node podczas instalacji Mongo. Zatrzymałem usługę Węzeł, a następnie uruchomiłem
wewnątrz folderu najwyższego poziomu mojego projektu węzła. To naprawiło problem i wszystko było jak nowe
źródło
Próbowałem uruchomić węzeł na folderze współdzielonym maszyny wirtualnej (włóczęga). To był problem. Mój komputer hosta to system Windows, zainstalowany węzeł w systemie Windows i działał jak urok. Więc jeśli używasz maszyny wirtualnej, po prostu spróbuj uruchomić serwer węzłów na maszynie hosta.
źródło
Właśnie miałem ten sam problem i dosłownie nic nie działało dla mnie. Wyświetlany błąd
kerberos
jest przyczyną problemu i była to jedna zmongoose
zależności. Ponieważ jestem na Ubuntu, pomyślałem, że mogą wystąpić problemy z uprawnieniami między zainstalowanymi globalnie pakietami -/usr/lib/node_modules
przez viasudo
, a tymi, które znajdują się w przestrzeni użytkownika.Zainstalowałem
mongoose
globalnie - isudo
oczywiście wszystko zaczęło działać zgodnie z oczekiwaniami.PS
kerberos
Pakiet jest teraz również instalowany globalnie obokmongoose
, jednak nie pamiętam, czy zrobiłem to celowo - podczas próby rozwiązania problemu, czy też był on od początku.źródło
Pracuję nad Dockerem z centOS 7 i napotkałem ten sam problem.
po rozejrzeniu się i kilku próbach naprawiłem ten problem, instalując mongodb i mongodb-server
Nie sądzę, że to najlepszy sposób na wyprodukowanie minimalnego pojemnika. ale mogę ograniczyć zakres do następujących pakietów
źródło
W przypadku systemu Windows 7.1 poniższe wskazówki pomogły mi naprawić środowisko kompilacji:
https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275
http://christiankvalheim.com/post/diagnose_installation_problems/
źródło
Rozwiązałem problem, odinstalowując i ponownie instalując pakiet mnicha. Pierwsza instalacja najwyraźniej miała uszkodzoną zależność mongodb / bson.
źródło
Followint @ user1548357 Postanowiłem zmienić sam plik modułu. Aby uniknąć problemów wskazanych w poprawnych komentarzach poniżej, dołączyłem moje zmiany do skryptu poinstalacyjnego, abym mógł go ustawić, zapomnieć i mieć pewność, że uruchomi się po zainstalowaniu moich modułów.
a skrypt jest:
źródło
łatwo wykop problem, po prostu dodając tę linię, spróbuj złapać ścieżkę bloku:
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
To wszystko!!!
źródło
Jedyną rzeczą, która pomaga mi w systemie Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121
Ponownie zainstaluj węzeł i python w wersjach x32.
Spędziłem dużo czasu z tym błędem:
i wreszcie, kiedy zainstalowałem moduł
node-gyp
(do budowania natywnych dodatków), a nawet zainstalowałem Windows SDK ze Visual Studio - nodejs nie rozpoznał zmontowanego modułubson.node
jako modułu. Po ponownej instalacji problem zniknął.Znowu, co oznacza ten błąd?
Właściwie to nawet nie błąd. Nadal możesz używać mangusty. Ale w tym przypadku, zamiast szybkiej natywnej realizacji
bson
modułu, maszjs-realization
, co jest wolniejsze.Widziałem wiele wskazówek, takich jak: „edytuj ścieżkę głęboko w module_węzła ...” - co jest całkowicie bezużyteczne, ponieważ nie rozwiązuje problemu, a jedynie wyłącza komunikaty o błędach.
źródło