여기에 총 노드 멍청한 놈. 샘플 노드 앱을 설정하려고했지만 실행하려고 할 때마다 다음 오류가 계속 발생합니다.
노드 앱
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)
답변
mongodb 라이브러리를 설치할 때 사용 가능한 도구를 가지고 있지 않은 것 같습니다. 나는 당신이 할 것을 제안합니다
xcode-select --install
(맥에서) 또는 sudo apt-get install gcc make build-essential
(우분투에서)
실행
rm -rf node_modules
npm cache clean
npm install
또는 @tobias 주석을 기반으로 한 npm 업데이트 (빌드 필수 설치 후)
npm update
답변
방금 해결했습니다.
npm까지 mongoose 모듈을 설치할 때 폴더에 bson 모듈이 내장되어 있지 않습니다. 파일 node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
에서 줄을 변경하십시오.
bson = require('../build/Release/bson');
에
bson = require('bson');
그런 다음 npm을 사용하여 bson 모듈을 설치하십시오.
답변
raspbian (raspberry 용 데비안)에서 “c ++ bson 확장명을로드하지 못했습니다”라는 문제를 다음과 같이 정렬했습니다.
npm install -g node-gyp
그리고
npm update
답변
나는 이것을 해결할 수 없었다
지금까지. 우선 Pradeep Mahdevu가 언급 한 시스템 패키지가 있어야합니다. 사람들은:
xcode-select --install (on a mac)
또는
sudo apt-get install gcc make build-essential (on ubuntu)
그런 다음 node-gyp을 설치했습니다.
npm install -g node-gyp
datadracer와 같이 말했지만 npm 업데이트도 제안했습니다. 위험 할 수있는 모든 모듈을 업데이트합니다 (때로는 버전 간 API 변경).
들어가는 것이 좋습니다 node_modules / mongodb / node_modules / bson 디렉토리
node-gyp rebuild
그것은 나를 위해 문제를 해결했습니다.
답변
일반적인 문제는 node-gyp에 Python 2.x가 필요하고 시스템의 python
포인트가 3.x를 가리키는 경우 bson
경고없이 컴파일되지 않습니다 . python
npm 구성에서 시스템의 2.x 실행 파일을 가리키는 전역 키를 설정하여이 문제를 해결할 수 있습니다 . 예를 들어, 아치 리눅스에서 :
npm config -g set python "/usr/bin/python2"
답변
WIN 8.1에서
내 잘못된 몽구스 버전을 사용한 것 같습니다. package.json
파일 .
에서 줄 "mongoose" : "^3.8.15"
을 제거했습니다 package.json
.
CLI :
npm install mongoose --save
이제 메시지가 표시 "mongoose": "^4.0.6"
되고 package.json
내가 가진 오류가 사라졌습니다.
답변
우분투 14.04를 실행 중이며 나를 위해 수정 하려면 여기에 설명 된대로 nodejs 를 가리 키도록 노드 에 대한 심볼릭 링크를 만들어야했습니다 .
일단 그렇게하면이 명령을 다시 실행합니다.
rm -rf node_modules
npm cache clean
npm install