programing

'../build/Release/bson' 모듈을 찾을 수 없습니다. 코드: 'MODULE_NOT_FOUND' } js-bson:순수 JS 버전을 사용하여 c++ bson 확장을 로드하지 못했습니다.

codeshow 2023. 4. 2. 11:41
반응형

'../build/Release/bson' 모듈을 찾을 수 없습니다. 코드: 'MODULE_NOT_FOUND' } js-bson:순수 JS 버전을 사용하여 c++ bson 확장을 로드하지 못했습니다.

다음의 에러가 표시됩니다.

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } 
  js-bson: Failed to load c++ bson extension, using pure JS version

버전 세부 정보는 다음과 같습니다.

  • OS: Windows 7

  • MongoDB: 2.6.5

  • 노드: 0.12.0

저는 이 이슈를 여기에 올리기 전에 이러한 것들을 시도했습니다.

  1. 는 ㅇㅇㅇㅇㅇ에.\node-modules\mongoose\node-modules\mongodb\node-modules\bson에서 binding-gyp에서 및 .'include_dirs': [ '<!(node -e "require(\'nan\')")' ]로로 합니다.'include_dirs': ["<!(nodejs -p -e \"require('path').dirname(require.resolve('nan'))\")"]

  2. 명령어를 실행.npm install -g node-gyp

  3. 을 mongoose의 3.package.json

아무것도 안 돼.제안해 주세요

npm module mongodb에서 찾습니다.

..\node_displays\mongodb\node_displays\bson\ext\index.displays

catch 블록에서 js 버전으로 경로 변경:

bson = require('../build/Release/bson');

수신인:

bson = require('../browser_build/bson');

또는 파일 복사 위치:

..\node_bson\build\릴리스\bson

송신원:

..\node_module\bson\module_build\bson

오늘(2016년 2월 19일)에 이 문제가 발생하여 최신 버전의 Mongoose를 설치하는 것만으로 해결했습니다.이것을 소포에 넣어 보세요.json:

"mongoose": "~4.4"

도움이 됐으면 좋겠다.날 위해 해결했어!

문제는 npm을 통해 mongoose를 설치할 때 python이 Windows에 설치되어 있다고 가정하고 필요한 라이브러리를 구축하려고 한다는 것입니다.python이 없기 때문에 경고와 함께 빌드 단계를 건너뜁니다.그러나 응용 프로그램을 시작할 때 필요한 모듈이 없기 때문에 이 오류가 발생합니다.

올바른 작업을 수행하려면 먼저 https://www.python.org/downloads/에서 python(버전 2.7)을 컴퓨터에 설치하거나 checkolatey를 설치한 경우 입력하세요.choco install python2.

그런 다음 python 변수가 설정되어 있는지 확인합니다.명령 프롬프트에서 다음과 같이 설정할 수 있습니다.

SET python=D:\Python27\python.exe

(물론 python 위치에 따라 경로를 변경해야 합니다.)그런 다음 node-gyp를 설치합니다.

npm install -g node-gyp

이것으로 mongoose 또는 문제의 원인이 되는 모듈을 다시 설치할 수 있습니다.

npm install mongoose

이번에는 빨간색이 아닌 노란색 선이 표시되지만 오류는 사라집니다.

버전 mogoose를 했습니다.3.8.23

npm install mongoose@3.8.23

이건 나한테 효과가 있었어.작업영역에서 텍스트를 검색합니다.

"../build/Release/bson"

아마 몽고스와 몽크 모듈 안에 있을 거예요.

다음으로 각각을 교환합니다.

bson = require('../build/Release/bson');

포함:

bson = require('bson');

그게 다야!

★★를 해 보세요.npm install mongoose@3.8.23또, 교환하다bson = require('../build/Release/bson'); 접속합니다.

bson = require('../browser_build/bson'); node_syslogsyslognode_syslog/bsson/ext/index.syslogaces에 있습니다.

이 방법은 효과가 있었습니다.

(프로젝트의) 파일로 이동합니다.

node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js

및 변경:

bson = require('../build/Release/bson');

대상:

bson = require('bson');

참고 자료: https://github.com/mongodb/js-bson/issues/118

단답

최신 버전의 mongodb를 설치합니다.

조금 더 길게 대답하세요.

소포를 확인하세요.json은 최신 버전의 mongodb를 사용하고 있으며 node_modb를 삭제하고 npm 설치를 다시 수행합니다.직접 의존관계로 mongodb를 사용하지 않은 경우 어떤 패키지가 mongdb를 사용하고 있는지 확인합니다.사용:

find . -type f -name package.json | xargs grep mongodb
...
./sails-mongo/package.json:    "mongodb": "1.4.26",
...

그래서 ./sails-mongo/package를 업데이트했습니다.대상:

"mongodb": "2.1.7",

그런 다음 node_modules/mongodb를 삭제하고 npm 설치를 다시 수행합니다.이제 괜찮아 보인다.

더 긴 답변

현재 권장되는 사용 방법이 마음에 들지 않습니다.

require('../browser_build/bson')

../browser_build/bson.js를 살펴본 이후 4k+라인 파일입니다.이 파일도 비네이티브 실장이라고 생각됩니다.그래서 불평은 하지 않겠지만, "순수 JS 버전 사용" 즉, 성능 저하를 의미합니다.

https://github.com/mongodb/js-bson/issues/145 및 https://github.com/mongodb/js-bson/issues/165,에서 이 문제가 발생한 이유는 다음과 같습니다.

2015년 9월 15일 안토니오 프루치 코멘트

c++ 코드가 6개월 전에 삭제되어 bson-ext라는 옵션 의존관계가 된 것을 알게 되었습니다.실제로 최신 버전을 설치하면 오류가 발생하지 않습니다.

그래서 node_modules 전체를 삭제하려고 했는데 같은 오류가 발생했습니다.그리고 소포를 보고 있다.node_displays/mongodb의 json. 버전은 최신 2.1.7이 아닌 1.4.26입니다.

내 mongodb는 내가 설치한 다른 패키지의 종속물인 sails-mongo로 온 것 같다.패키지를 수정하는 중입니다.sails-mongo의 json과 npm 설치를 재실행하면 문제가 해결됩니다.

Keystone JS CMS 도입 시 동일한 오류가 발생했으며, 가장 우아한 솔루션은 다음과 같습니다.

npm-check-updates:

root@keystonejs:~# npm install -g npm-check-updates

디렉토리 내서 「」는 「」입니다.package.json의존관계를 합니다.

debian@keystonejs:~/myproject/manalcjim$ npm-check-updates -u

그런 다음 모든 패키지를 업데이트합니다.

debian@keystonejs:~/myproject/manalcjim$ npm install

마지막으로 '이것'을 했다면 '이것'을 선택해주세요.jade는, 인스톨이 경우가 있습니다.jade★★★★★★★★★★★★★★★★★★:

debian@keystonejs:~/myproject/manalcjim$ npm install jade --save

되어 있는 ('mongoose는 mongoose입니다.npm install mongoose.mongodbnode_modules더입니니다다

다음의 순서로, 문제의 트러블 슈팅을 실시할 필요가 없어졌습니다.

  • npm install mongoose
  • node_modules\mongoose\node_modules\mongodb 뿌리까지node_modules폴더와 함께 을 덮어씁니다.npm install mongodb)
  • Failed to load c++ bson extension...error 이) error(이 문제에 대해 침묵하도록 변경)

표시된 답은 완전히 틀렸다.콘솔 로그 문을 숨기고 실제 문제에 대처하는 것은 아무것도 하지 않습니다.눈을 감아도 같은 결과를 얻을 수 있습니다.

이 문제는 노드 Gyp와 그것만이 원인입니다.그 목적은 bson과 같은 특정 모듈의 네이티브 확장을 컴파일하는 것입니다.

실패했을 경우 코드는 JS 버전으로 폴백하여 다음 메시지를 통해 알려드립니다.

Failed to load c++ bson extension, using pure JS version

이 문제는 메시지를 보지 않고 네이티브 C++ 확장자를 컴파일하는 방법에 관한 것이므로 이에 대처해 봅시다.

node-gyp가 기능하려면 node-gyp가 노드 및 C++ 컴파일러와 함께 최신 상태여야 합니다(이것은 OS에 따라 다릅니다).모듈도 최신 상태여야 합니다.

먼저 node-gyp를 제거하고 다시 설치합니다.

npm un node-gyp -g;npm i node-gyp -g

이제 앱에서 bson이 있는 노드 모듈(요건에 따라 설치된 모듈 포함)을 완전히 제거하고 다시 설치해야 합니다.이것으로 오류를 해결할 수 있습니다.Release/bson'을 검색하여 범인을 찾을 수 있습니다.

find node_modules/ -type 'f' -exec grep -H 'Release/bson' {} \;

그런 다음 모듈을 제거하고 다시 설치합니다.

것은 그냥 를 다시 입니다.node_modules★★★★

 rm -rf node_modules
 npm cache clear
 npm i

그래도 문제가 발생할 경우 1) 모듈이 최신 상태가 아니거나 2) 문제 트래커를 보고 충돌이 발생할 수 있습니다. 예를 들어 로컬 노드 집트가 발생할 수 있습니다. node-gyp버전을 확인합니다.

「 」의 www.spotdekho.comwindows10 명령어를 할 수 ."nodemon web.js" 에러 「」가 원인입니다.

"오류: '../build/Release/bson' 모듈을 찾을 수 없습니다."

이하의 순서로 수정했습니다.

  1. "node_modules\bson\build" 위치에 "Release" 폴더를 만듭니다.
  2. "node_modules\bson\browser_build"에서 bson.js를 복사합니다.
  3. bson.js를 "node_modules\bson\build\" 안에 붙여넣습니다.Release" 폴더.

이것으로 문제가 해결됩니다.

PS: mongoose 버전 4.8.8을 사용하고 있습니다.

감사합니다:)누군가에게 도움이 되길 바랍니다.

이와 같은 에러가 발생했을 때는 노드 v0.10에서 노드 v4.x.x로 업그레이드하고 있었습니다.새로운 버전의 gcc를 설치해야 했습니다(gcc v4.4.x 같은 것이 있었던 것 같습니다).저는 gcc 4.7.2로 업데이트했고 그 이후로는 모든 것이 작동했습니다.

나도 bson과 같은 문제가 있었다.

새로운 mongoose 버전 시도

npm install mongoose@4.4

문제를 해결했습니다.

마시모.

를 실행하여 mongoose를 제거합니다.npm uninstall --save mongoose 그 에는 - 다시 설치하다npm run mongoose의 최신 합니다.npm install --save mongoose이건 나한테 효과가 있었어.

유감스럽게도 위의 답변은 모두 절반밖에 맞지 않습니다.이걸 알아내는데 오랜 시간이 걸렸어요

npm을 통한 Mongoose bson 설치는 경고를 발생시키고 오류를 발생시킵니다.

npm install -g node-gyp

git clone https://github.com/mongodb/js-bson.git
cd js-bson
npm install
node-gyp rebuild

이건 마법처럼 작동해!!

Windows 8.1 을 사용하고 있는 경우는, npm 모듈을 올바른 Visual Studio 컴파일러로 인스톨 하고 있는 것을 확인해 주세요.

Visual Studio 2012가 설치되어 있으면 이 명령어가 작동합니다.(node_modules dir 삭제 후)

npm install --msvs_version=2012

어떤 이유로 node-gyp가 잘못된 버전의 Visual Studio 컴파일러를 사용하려고 합니다.mongodb 및 mongoose 모듈을 설치할 때 "npm install" 명령어가 노드 Gyp 의존 관계가 아닌 경고를 출력하고 있다는 것도 알게 되었습니다.

올바른 msvs_version을 사용한 후 npm 설치 경고와 nodejs 앱 실행 시 콘솔 경고가 사라졌습니다.

또한 Python 3.0.X가 아닌 올바른 Python 2.7.X 버전이 설치되어 있는지 확인해야 할 수도 있습니다.

또한 python이 env 경로에 있는지 확인해야 합니다.

Windows 7(x64)에서 유일하게 도움이 되는 것은 https://stackoverflow.com/a/29714359/2670121입니다.

x32 버전을 사용하여 노드와 python을 다시 설치합니다.
에러확장자를 )와 때 (c++bson 확장자를 하지 못했습니다).node-gyp(네이티브 애드온 빌드용) 및 비주얼 스튜디오가 있는 Windows SDK 설치 - nodejs는 조립 모듈 bson.node를 모듈로 인식하지 못했습니다.재인스톨 하면, 문제는 해소된다.

다시, 이 오류는 무엇을 의미합니까?

사실, 오류도 아닙니다.아직 몽구스를 쓸 수 있어요.그러나 이 경우 bson 모듈의 고속 네이티브 실현 대신 js-realization이 실행되어 속도가 느려집니다."node_modules 내부 경로 편집..."과 같은 힌트를 많이 볼 수 있었습니다.문제가 해결되지 않고 에러 메시지만 꺼버리기 때문에 전혀 쓸모가 없습니다.

드셔보세요.npm install bson ★★★★★★★★★★★★★★★★★」npm update

NODE_MODULS 라이브러리 폴더의 파일을 변경하지 마십시오.

은 이이의 입니다.npm install명령어를 입력합니다.

기본적으로 Windows 사용자에게는 VM을 사용하는 것이 올바른 방법이라고 생각합니다.재택근무를 할 때 하는 거예요.

필요한 모든 것:

for CentOS: yum install gcc gcc-c++ make openssl-devel

for Debian/Ubuntu: apt-get install build-essential

그리고 나서.npm install또는 이미 실행한 경우 -npm update

나에게 가장 좋은 해결책은 node-mongodb 1.x에서 2.x로 업그레이드하는 것이었습니다.

이 스레드가 1년 이상 된 것은 알지만 모듈이 다르지만 도움이 되었습니다.

mongoose-post-findv0.0.2를 설치했더니 이 문제가 시작되었습니다.수정하기 위해 제안사항을 사용하여 \node_modules\mongoose-post-find\node_modules\bson\ext로 이동하여 index.js 파일을 열었습니다.

파일은 올바른 bson 버전을 요구하려는 시도 캐치 블록으로 시작합니다.

try {
    // Load the precompiled win32 binary
    if(process.platform == "win32" && process.arch == "x64") {
      bson = require('./win32/x64/bson');  
    } else if(process.platform == "win32" && process.arch == "ia32") {
      bson = require('./win32/ia32/bson');  
    } else {
      bson = require('../build/Release/bson');  
    }   
} catch(err) {
    // Attempt to load the release bson version
    try {
        bson = require('../browser_build/bson');
    } catch (err) {
        console.dir(err)
        console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
        bson = require('../lib/bson/bson');
    }
}

이것이 수정 버전입니다.무슨 일이 있었냐면.. /build/Release/bson에서 bson을 로드하려다가 찾지 못하고 catch에 빠졌습니다.../build/Release/bson에서 bson을 다시 로드하려고 했지만 실패했습니다.따라서 캐치 내의 경로를 변경하여 ../browser_build/bson을 검색합니다.이것으로 에러가 해결되었습니다.

완성도를 높이기 위해 글을 올립니다.

ubuntu를 16.04로 업그레이드한 후에도 같은 문제가 발생하였습니다.이렇게 해결했어요 도움이 됐으면 좋겠네요

$rm -rf node_modules
$npm --save install bson
$npm --save install mongoose
$npm install

이 경우 c++ 버전 bson을 찾을 수 없었던 이유는 기업 프록시의 배후에 있으며 BSON 빌드 프로세스에서 파일을 가져오기 위해 손을 뻗어야 하기 때문입니다.node_modules/bson/builderror.log에서 다음과 같은 오류가 발견되었습니다.

gyp WARN install got an error, rolling back install gyp ERR! configure error gyp ERR! stack Error: connect ECONNREFUSED gyp ERR! stack at errnoException (net.js:904:11) gyp ERR! stack at Object.afterConnect [as oncomplete] (net.js:895:19)

그래서 프록시가 문제일 수도 있다는 거죠http_proxy 및 https_proxy 환경변수를 설정하면 해결되었습니다.

이 점에 대해 다시 한 번 각성시켜 죄송합니다만, 이 스레드가 저희 문제를 해결하는 데 큰 도움이 되었기 때문에 앞으로 이 글을 올려주셨으면 합니다.

npm install mongoose --msvs_version=2012를 설치해보니 Visual이 여러 개 설치되어 있으면 작동했습니다.

초판bson.js에서 코드하다.browser_build folder

번째 새 파일 생성bson.js코드 붙여넣기

번째, 새 파일을 다음 위치에 저장합니다.index.js.

OS Windows 8.1을 사용하고 있는데, 같은 문제가 있었습니다.문제의 원인은 Python 버전입니다.파일을 검토해보니 오리진 문제가 있더군요...\node_mongodb\node_mongodb\node\mongodb-core\node_module\kerberos\builderror.log.

올바른 버전의 Python(64비트용 2.7.9)을 설치했더니 문제가 해결되었습니다.

참고: 설치된 python 버전은 2.7.5 이상 3.0.0 미만이어야 합니다.

bson = require('../browser_build/bson'); 또 가 발생하게 됩니다.

정의되지 않은 속성 'BSON_BINIAR_SUBTYPE_DEFAULT'를 설정할 수 없습니다.

는 이 했다.npm update몽구스 부손

그래서 같은 문제가 발생했는데 지정된 mongoDB URL이 존재하지 않습니다.그러니 이걸 고치려면..\server\config\environment" 폴더와 "development.js"에서 편집하여 mongoDB로의 링크를 파일합니다.

예:

// Development specific configuration
// ==================================
module.exports = {
  // MongoDB connection options
  mongo: {
    uri: 'mongodb://localhost/test2-dev'
  },

  seedDB: true
};

따라서 "uri: '//localhost/test2-dev'를 mongoDB 데이터베이스에 대한 실제 경로로 변경합니다.

제 게시물이 누군가에게 도움이 된다면 기쁠 텐데...

npm module mongodb ..node_mongodb\node_module\bson\ext\index.module에서 찾을 수 있습니다.

catch block에서 js 버전으로 경로를 변경합니다.

bson = require('../build/Release/bson');

로로 합니다.bson = require('../browser_build/bson');

try {
        // Load the precompiled win32 binary
        if(process.platform == "win32" && process.arch == "x64") {
          bson = require('./win32/x64/bson');  
        } else if(process.platform == "win32" && process.arch == "ia32") {
          bson = require('./win32/ia32/bson');  
        } else {
         bson = require('../browser_build/bson');  
        }   
    } catch(err) {
        // Attempt to load the release bson version
        try {
            bson = require('../browser_build/bson');
        } catch (err) {
            console.dir(err)
            console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
            bson = require('../lib/bson/bson');
        }
    }

언급URL : https://stackoverflow.com/questions/28651028/cannot-find-module-build-release-bson-code-module-not-found-js-bson

반응형