[javascript] C ++ BSON 확장을로드하지 못했습니다.

여기에 총 노드 멍청한 놈. 샘플 노드 앱을 설정하려고했지만 실행하려고 할 때마다 다음 오류가 계속 발생합니다.

노드 앱

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경고없이 컴파일되지 않습니다 . pythonnpm 구성에서 시스템의 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 를 가리 키도록 노드 에 대한 심볼릭 링크를 만들어야했습니다 .

우분투 12.04의 nodejs와 node

일단 그렇게하면이 명령을 다시 실행합니다.

rm -rf node_modules
npm cache clean
npm install