Mongoose: js-bson:純粋なJSバージョンを使用して、c ++ bson拡張機能を読み込めませんでした

作成日 2014年09月07日  ·  115コメント  ·  ソース: Automattic/mongoose

Forkをクリックし、リポジトリのクローンを作成して、このモジュールをプロジェクトにアタッチしました。 このエラーが発生します

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

nodejs v0.11.13 、最新のosx 。 問題はmongodbモジュールにあるようです(bson 0.2.15で動作します)。

最も参考になるコメント

Keystoneで使用する場合、これは私がそのエラーを乗り越えるために働いたものです:

私のpackage.json depsに以下を追加します。

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

それから

npm install

ついに

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

エラーは発生しません。

全てのコメント115件

同じ問題

ここで同じ問題。 3.8.15にバックオフすると、0.11.13未満のOSXの問題が解決されます。

ええ、私もこれに気づきました。 コードは引き続き機能しますが、パフォーマンスが低下する可能性があります。 次のバージョンでこれを修正します。

わかった

同じ問題

こっちも一緒。 変更されるまで3.8.15のままになります。

OK ....同じ問題です!

これに関する更新はありますか?

同じ問題が発生しました(mongoose 3.8.19およびノー​​ド0.10.33)。 npm install(およびnpm update)がbsonのデバッグバージョンをコンパイルしていることに気付いた後、解決しましたが、index.js(私の場合はnode_modules / mongoose / node_modules / mongodb / node_modules / bson / ext / index.jsに配置されています)リリースバージョンが必要です。 コードのこのセクションでわかるように、次のようになります。

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('../build/Release/bson');
    } catch (err) {
        console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
        bson = require('../lib/bson/bson');
    }
}

ビルドディレクトリに移動し、次のコマンドでbsonをコンパイルします。

make BUILDTYPE=Release all

リポジトリのどこかでリリースからデバッグに変更されましたが、検索しませんでした。

@ Gas3どのバージョンのnpmを使用していて、どのプラットフォームでこれを実行していますか? これは、安定したノード0.10.xでは実際には発生しないはずです。

また、私はこれを再現することができました-npm 2.0.0(ノード0.11.14に付属するバージョン)でクリーンなnpm installように見え、ノード0.11.14でこれは正常に機能します。 つまり、 rm -rf node_modules && npm installです。 これが役立つかどうかを確認できますか?

Os X10.9.5の海抜2.1.7

クリーンなnpmインストールを試すことができますか?node_modulesを削除してから、 npm install削除しますか? これは、js-bsonを再構築せずにノードのバージョンを変更する問題のように聞こえます。

+1

@brunobatistaはnode_modulesでrm -rfを試して、クリーンなnpmインストールを実行します。

同じ問題:
ノードバージョン:v0.10.35
npmバージョン:2.1.18

ここで同じ問題:
OS:Arch Linux
ノードバージョン:v0.10.35
npmバージョン:2.1.18
マングースバージョン:3.8.21

試してみました 'rm -rf node_modules; npmキャッシュクリーン; npm install '運がない。
Mongooseバージョン3.8.15でも試してみたところ、同じ結果が得られました。

同じ問題がUbuntu14.04にもありました。 私のステップ:
1)npmを1.3から2.1.18に更新しました
2)npmキャッシュクリーン
3)rm -rf node_modules
4)npm i
できます!

しかし、Windows8.1でエラーが発生します。 この「require」はエラーをスローします:

bson = require('./win32/ia32/bson'); 
The specified procedure could not be found.
C:\Users\d.kiriliuk\Projects\vozovoz\node_modules\mongoose\node_modules\mongodb\node_modules\bson\ext\win32\ia32\bson.node

ファイルbson.nodeが存在します

これを修正する予定ですか?

同じ問題

OS:OSX 10.10.2
ノードバージョン:v0.10.36
npmバージョン:2.3.0
マングースバージョン:3.8.22

試してみました 'rm -rf node_modules; npmキャッシュクリーン; npm install '運がない。

マングースが必要な場合、次の出力が得られます。

[Error: Module did not self-register.]
js-bson: Failed to load c++ bson extension, using pure JS version

+1

同じ問題!!

OS:UBUNTU 14.04(x64)
ノードバージョン:0.12.0
npmバージョン:2.5.1
マングースバージョン:3.8.21

[Error: node_modules/mongoose/node_modules/mongodb/node_modules/bson/build/Release/bson.node: undefined symbol: node_module_register]

(err): js-bson: Failed to load c++ bson extension, using pure JS version

回避策または修正する予定はありますか?

何も見つかりませんでした:(
パッケージを再インストールしようとしています...
node-gypでbsonを再構築します
npmキャッシュをクリーンアップして...。
何も起こらなかった。
それでも私はこのメッセージを受け取りました

マングースパッケージを3.9.7に更新します
問題は修正されましたが、マングースから次のメッセージが表示されました。

##############################################################
#
#   !!! MONGOOSE WARNING !!!
#
#   This is an UNSTABLE release of Mongoose.
#   Unstable releases are available for preview/testing only.
#   DO NOT run this in production.
#
##############################################################

修繕!
マングースの最新の安定バージョン(3.8.23)を使用しています
問題が修正されました:)

このエラーメッセージは多くのことの1つを意味する可能性があるため、これを一般的に「修正」することは実際には不可能です。 これは、適切なバージョンのpythonまたは適切なC ++コンパイラがインストールされていないことを意味する場合があります(node-gypのため)、npmがmongooseをインストールしたときなどからノードのバージョンを切り替えたことを意味する場合があります。

あなたが勝ちます!

すみません、それは私のせいでした。

builderror.log:
gyp ERR! 構成エラー
gyp ERR! スタックエラー:Python実行可能ファイル「python」はv3.4.2であり、gypではサポートされていません。
gyp ERR! スタック--pythonスイッチを渡して、Python> = v2.5.0&<3.0.0を指すようにすることができます。
gyp ERR! failPythonVersionでスタック(/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:108:14)
gyp ERR! /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:97:9にスタック
gyp ERR! ChildProcess.exithandlerでスタック(child_process.js:735:7)
gyp ERR! ChildProcess.emitでスタック(events.js:110:17)
gyp ERR! mayCloseでスタック(child_process.js:1008:16)
gyp ERR! ソケットでスタックします。(child_process.js:1176:11)
gyp ERR! Socket.emitでスタック(events.js:107:17)
gyp ERR! Pipe.closeでスタック(net.js:476:12)
gyp ERR! システムLinux3.14.27-1-lts
gyp ERR! コマンド "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd / home / node / sites / hellooo / src / node_modules / mongoose / node_modules / mongodb / node_modules / bson
gyp ERR! ノード-vv0.12.0
gyp ERR! node-gyp -v v1.0.2
gyp ERR! よくない

私の場合、解決策は次のとおりです。

npm config set python python2.7

マングースを再インストールして動作します。

'npm install'の出力からのこの行には注意を払いませんでした:

[email protected] install / home / node / sites / hellooo / src / node_modules / mongoose / node_modules / mongodb / node_modules / bson
(node-gyp再構築2> builderror.log)|| (0番出口)

これは、私が気づかなかったbsonの構築中にエラーが発生したことを意味します。

@ vkarpov15ありがとうございます。

はい、npmpython設定を更新したと言うのを忘れています。

tnx @ vkarpov15

やあ、
「rm-rfnode_modules && npm install」を実行しましたが、以下を参照してください。

/

[email protected] install c:\ Raj \ project \ meandemo \ node_modules \ mongoose \ node_modu
lesmongodb \ node_modules \ kerberos
(node-gyp再構築2> builderror.log)|| (0番出口)

c:\ Raj \ project \ meandemo \ node_modules \ mongoose \ node_modulesmongodb \ node_modules \
kerberos> node "c:\ Program Files \ nodejs \ node_modulesnpmbin \ node-gyp-bin .... \
node_modules \ node-gypbin \ node-gyp.js "再構築

[email protected]インストールc:\ Raj \ project \ meandemo \ node_modules \ mongoose \ node_modules
mongodb \ node_modulesbson
(node-gyp再構築2> builderror.log)|| (0番出口)

サーバーを実行すると、以下のエラーが発生します。

{[エラー:モジュール '../build/Release/bson'が見つかりません]コード: 'MODULE_NOT_FOUND'}

js-bson:純粋なJSバージョンを使用して、c ++ bson拡張機能を読み込めませんでした
c:\ Raj \ project \ meandemo \ node_modules \ express \ lib \ router \ route.js:170
新しいError(msg);をスローします。
^
エラー:Route.get()にはコールバック関数が必要ですが、[objectUndefined]を取得しました
ルートで。(c:\ Raj \ project \ meandemo \ node_modules \ express \ lib \ route
r \ route.js:170:15)
Array.forEach(ネイティブ)で
ルートで。(無名関数)をgetとして
EventEmitter.app。(無名関数)(c:\ Raj \ project \ meandemo \ node_modul
es \ express \ lib \ application.js:429:19)
オブジェクトで。(c:\ Raj \ project \ meandemo \ server.js:23:5)
Module._compileで(module.js:460:26)
Object.Module._extensions..js(module.js:478:10)で
Module.load(module.js:355:32)で
Function.Module._load(module.js:310:12)で
Function.Module.runMain(module.js:501:10)で

これが私のバージョンの詳細です:
OS:Windows 7
ノード:0.12.0
マングース:3.8.23
npm:2.5.1

提案してください

こんにちは@ rajnav

同じ問題ですが、builerror.logには1行しか含まれていません:

child_process: customFds option is deprecated, use stdio instead.

project / node_modules / mongoose / node_modules / mongodb / node_modules / bsonにあります

私はosxyosemiteとノード0.12.xを使用しています

私もこの警告を受けましたが、それは私にとってはうまくいきました。

ノード0.12.xでfedora20を使用していますが、この警告が表示されます。 作業を続けても安全ですか?
ノード0.10.xに問題はありませんでした

非推奨の警告のようですが、後遺症についてはよくわかりません。 前に言ったように、それは私にとってはうまく機能しています。

@rajnavエラーはExpressの場合と同じように見えます。 bson not foundエラーは、ネイティブのコンパイル済みbsonバイナリが見つからなかったという警告であり、クラッシュの原因にはなりません。

また、customFdsオプションの非推奨の警告も確認しました。 まだ動作するはずです。 それがどこから来ているのかについてもっと調査します。

builderror.logファイルが答えを提供します。
要求されたとおりに、npm installで--python=python2.7フラグを渡しましたが、エラーは発生していません。 これは、Windows64ビットとubuntuの両方のインストールで機能しました。

npm install --python=[path to python] mongoose

PS
Windowsマシンでは、私はまだ持っています
child_process: customFds option is deprecated, use stdio instead.
builderror.logファイルにありますが、これにより、アプリケーションの実行時にノードコンソールにエラーが表示されることはありません。

マングース:3.8.24
npm:2.7.9
os:Arch Linux

やって
rm -rm node_modules/
npm cache clean
npm config set python python2.7
npm install
私のために働いた。

クリーンなnpm install
ノードを更新した後に私に起こりました。

マングース3.8.21
Ubuntu 14.04.2

使用する

npm config set python python2.7
cd node_modules/mongoose/node_modules/mongodb/node_modules/bson
npm install

私のために働いた!

したがって、Pythonはマングースを使用するための要件です??? ドキュメントでは明確ではないため、本番環境にインストールすることは許可されていません。 (文書化されていない限り...):(

node-gyp(v8ビルドシステムのノードラッパー)がpythonを必要とする限り、MongooseはPythonのみを必要としここをクリックしてください

ただし、ここでも、マングースはbsonパーサーを構築できない場合でも期待どおりに機能します。 node-gypが成功するために必要な唯一の機能は、Kerberos認証メカニズムです。

どうもありがとうございます、

@jayfloは私にとってもウォーフですが、これ以上問題が発生することはありません!!

+1ここmongodb / js-bson / issues / 118

これはあなたの問題を解決します:

$ cd node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/
$ npm install

したがって、mongodb-coreをmongodbに、mongooseに統合した人が責任を負うことは私にはかなり明白でした。 誰かがそこでnpmのインストールを逃しました。 これをエスカレートする方法はありますか。少なくとも私の意見では、明らかに数千人のユーザーが影響を受けており、(ビジネス)の影響は非常に高いと安全に見なすことができるためですが、以前は間違っていました。

npmのインストールを見逃した人は誰もいません。システムがnode-gypを正しく実行するように構成されていれば、問題なく動作します。 そうは言っても、node-gypを適切に実行するようにシステムを構成することは、後部での大きな問題です。そのため、オプトアウトしない限り、バイナリの事前構築を検討し、npminstallで構築済みのバイナリを最初にダウンロードしようとします。

ビジネスへの影響についても、これは_警告_であり、_エラー_ではありません。

明確な回答をありがとうございます。 mongo-coreディレクトリにnpminstallを実行しないと、gruntとnodeが起動しません。したがって、この警告は、少なくとも私のシナリオでは、そして明らかに(スクロールアップ)他の多くのシナリオでは、目立たないものです。 あなたの観点からは、これはあなたのプロジェクトの懸念事項ではないことがわかりますが、Linux、Mac、およびWindowsで同様にすぐに実行することはできません。

アム2015年4月17日午後03時33 umのschriebバレリ・カルポフ[email protected]

エラーではなく、rning。

それらが開始しない場合は、他の何かが間違っています。 このメッセージは警告であり、うなり声やノードの開始を妨げるものではありません。 元のnpminstallコマンドからの残りの出力を表示できますか(mongodb-coreでnpm installを実行する前)?

繰り返しになりますが、この警告を今すぐ取り除きたい場合、現時点での唯一の方法は、 node-gypの依存関係を設定する

このスレッドでそれを突き出してくれたvkarpov15に感謝します。 同じ問題を抱えている別の人がいることを知っているように、私は自分の+1を投げたいだけです。 そうは言っても、私はまだアプリケーションを実行できるので、これはエラーではなく警告であるとアドバイスします。 ですから、今後のアップデートで警告が解決され、さらに安心できることを願っています。 再度、感謝します。

fyi〜この警告は、ノードを10から12に更新した後に発生しました...

@camachowebworldは、node_modulesをクリアして、 rm -rf node_modules && npm installを再インストールしてみてください。 通常、メジャーノードバージョンのアップグレードを行う場合は、bsonを含むネイティブ拡張機能を再構築する必要があります。 再インストールすることでうまくいくはずです。

Ubuntu 14.04.1 LTS(AWS EC2)
「sudoapt-getinstallbuild-essential」を実行する必要がありました

多分誰かを助けることができます。

vkarpov15msgに返信していただきありがとうございます。 経験不足について悩む。 「node_modulesをクリアして、rm -rf node_modules && npminstallを再インストールしてみてください」と言っています。 私は窓にいます。 これらのコマンドはどこで実行できますか? プロジェクトフォルダで「rm-rfnode_modules」を実行しようとすると、「rm is not ....コマンド」と表示されます。

同じことで、Windowsエクスプローラーでnode_modulesを削除するだけです。 次に、最初に実行した場所でnpminstallを実行します。

一般的な提案、Windowsでノード開発を行っている場合はgit bash + mingwを使用してください

Windows 7(x64)でノードを0.12.3バージョンに更新した直後に同じエラーが発生しました。
すでにインストールしています: node-gyp, node-pre-gyp, python, .NET SDK ->その後、アセンブリに関するエラーメッセージを受信しなくなりました。 マングース3.8.28フォルダーの場合mongoose\node_modules\mongodb\node_modules\bson\build\Release
これらのファイルが含まれています:

/obj
/bson.exp
/bson.lib
/bson.node
/bson.pdb

しかしメッセージ

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

まだ表示されます

UPD解決策を見つけましWin7およびnodejs0.12.3

iojsユーザーの場合:

最新バージョンはマングースをうまくサポートしていません。 最後の安定版リリースv2.0.0にダウングレードします(神のためにnvmを使用します)。 そして、それは魅力のように機能します!

念のため、この情報を追加します。私たちの会社では、最近この問題が発生しました。

Windowsでは、次の1行を変更することで、この問題を解決しました。

node_modulesmongodb \ node_modulesmongodb-core \ node_modulesbson \ node_modulesbons-ext \ ext \ index.js

後の行:

//リリースbsonバージョンのロードを試みます
試す {

from:bson = require( '../ build / Release / bson');
to:bson = require( '../../../ lib / bson / bson');

エラーメッセージ:
{[エラー:モジュール '../build/Release/bson'が見つかりません]コード: 'MODULE_NOT_FOUND'}
js-bson:純粋なJSバージョンを使用して、c ++ bson拡張機能を読み込めませんでした

これで、mongoは正常に機能しているようです。 mongodbドライバーver。を使用 2.0.33

それが役に立てば幸い。

誰かがChrisGcisoのソリューションが実行可能なものであることを確認できますか? 現在、AtlassianBambooでこの同じ1年前の問題に直面しています。 Bambooで修正する方法はありますか?

これは解決策ではなく、単なるハックです。 同様に、そのファイルのコンソール出力を削除することもできます。

JS Bsonへのフォールバックと、C ++実装ほどパフォーマンスが良くないという警告が、見た目の問題にすぎないことを理解するのに苦労しています。

ステファンクリスティン
Edelweißstr。 4
81541ミュンヘン

+49 151 5461 8086
NS。 [email protected]
http://meshfields.de

2015年6月9日17:38 + 0200、 edtechdnotifications @ github.comは、次のように書いています。

これは解決策ではなく、単なるハックです。 同様に、そのファイルのコンソール出力を削除することもできます。


このメールに直接返信するか、GitHub(https://github.com/Automattic/mongoose/issues/2285#issuecomment-110406406)で表示してください。

@ChrisGcisoは、敷物の下で警告を一掃しているだけです。 つまり、コンパイルされたものをチェックせずにJavaScriptbsonパーサーを使用します。

@nottinhill残念ながら竹の経験がないので仕方がありません。 それが「外観上の問題」であるかどうかは、ユースケースによって異なります。たとえば、竹のようなCI環境では、通常、ここでマイクロ秒を短縮し、そこで数バイトのメモリを節約することについて心配しすぎます。 あなたのprod環境ではそれが潜在的に重要であり、本当に余分なパフォーマンスが必要な場合は、node-gyp依存関係を設定して再インストールする必要があります。

現状では、将来私たちが望んでいることの1つは、コンパイルされたbsonパーサーとJavaScriptbsonパーサーの間のギャップを埋めることです。 貢献したい場合は、http://github.com/mongodb/js-bsonで大歓迎です:)

@ vkarpov15単純な解決策がなく、パフォーマンスに重大な影響を与えない場合に「エラー」メッセージを一掃する方が、実際の問題を反映する実際のエラーと混合するよりも優れている場合があります。 このエラーを何ヶ月にもわたって何度も目にすることは、それが処理できない限り、特にドライバーを使用したい新しい人々にとっては良くありません。 エラーメッセージを取り除くための複雑な一連の手順を含まない、より良い解決策はありますか?

多分それは「エラー」の代わりに「情報」とラベル付けされるべきですか?

フェアポイント。 native_parserフラグがあり、mongodbがコンパイルされたバージョンのjs-bsonを探すのを防ぐ必要があります。

今夜インストールされたFedora22、ノードv0.12.4を使用しています

npm config set python python2.7
=>私の問題を解決しました、thx

私はここでDockerarchlinuxコンテナでこの問題を抱えていました、そして私の解決策は次のとおりでした:

$ pacman -S gcc make nodejs npm python2
$ npm config set python python2.7
$ npm install -g node-gyp

マングースバージョン4.0.5

Bambooエラーについて-npmタスクを作成し、通常どおり環境変数を設定して、次のパラメーターを設定することで、問題を_解決_しました。

install node-gyp

グローバルフラグが欠落しているという苦情が表示されますが、Bambooでは、移行の柔軟性のため、少なくともグローバルインストールは好みません。

編集エラーが戻ってきました:

build   17-Jun-2015 10:30:53    Running "mochaTest:src" (mochaTest) task
build   17-Jun-2015 10:30:53    { [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
error   17-Jun-2015 10:30:53    js-bson: Failed to load c++ bson extension, using pure JS version

はい、それは私のために働きました、ありがとう。

実際、gccをインストールしてmakeも実行する必要があったため、cppをバイナリにコンパイルできました。


フレデリコ・ソウザ
RioBus共同創設者- http://riob.us/ http://riob.us/
電話番号:(+ 55 21)97285-8787
リオデジャネイロ、ブラジル

エム17/06/2015、à(S)5時22分、ステファンKristyn [email protected] escreveu:

Bambooエラーについて-npmタスクを作成し、通常どおり環境変数を設定してから、次のパラメーターを設定することで問題を解決しました。

node-gypをインストールします
グローバルフラグが欠落しているという苦情が表示されますが、Bambooでは、移行の柔軟性のため、少なくともグローバルインストールは好みません。


このメールに直接返信するか、GitHub https://github.com/Automattic/mongoose/issues/2285#issuecomment-112714644で表示して

私はこの問題を抱えていました。 connect-mongoを0.8.2に更新し、mongooseをバージョン4.0.7に更新し、正常に動作しました。

ノードv0.12.2、NPM 2.13.0、OSX 10.10.4

sailsjsを使用した同じ問題

mongoose> = 4.0.6にアップグレードして、bsonがC ++拡張機能を使用しないようにします。 いずれにせよ、このメッセージは単なる警告です。

vkarpov15のおかげで、4.0.6へのアップグレードはうまくいきました。

同じ問題。 xUbuntu15.04を使用します。
libkrb5-dev、nodejs-legacyのパッケージをインストールしてみました。 Node.js v4.1.0、npm 2.14.3、mongoose4.1.7をアップグレードします。 しかし動作しません:-(

クリーンな再インストールを試しましたか? また、kerberos authを気にしない限り、libkrbについて心配する必要はありません。mongooseはそれがなくても正常に動作します。

@TimePowerグローバルノード-gypインストールを試しましたか?

マングースに関連するものを使おうとすると、次のエラーが発生します。

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

ノード4.1.0およびマングース4.1.10。

rm -rf node_modules && npm cache clean && npm install @jackdbernier

また、これは警告であり、エラーではありません。

mongoose> = 4.0.6にアップグレードして、bsonがC ++拡張機能を使用しないようにします。

Mongoose 4.1.10を使用していますが、それでもエラーが発生します。

mongodbを2.6にダウングレードすることを解決しました

rm -rf node_modules && npm cache clean && npm install
同じエラーの後、私にはうまくいきません

ここで同じ問題:

rm -rf node_modules && npm cache clean && npm install
同じエラーの後、私にはうまくいきません

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

私のセットアップ:

  • AWS Ubuntuマシン:Ubuntu 14.04.1 LTS
  • node.js v0.12.7
  • マングース4.1.12
  • MongoDB 2.6.5

これはすべて、nodejsをアップグレードしたときに始まりましたが、Mongoose4.1.12にアップグレードしても役に立ちませんでした。

これはまだ問題ですか? ここにさらに情報を残すことさえわざわざする必要があります...他の誰もが私のためにそれをしました....誰かがこれを安定させるつもりですか、それとも何ですか?

エラーではなく、単なる警告です。 また、node-gypを適切に設定する方法については、このスレッドに十分な情報があります。

@ vkarpov15返信ありがとうございます。 これはエラーであり、警告ではありません。このメッセージの後にnpmのインストールが失敗します。 これがnode-gypとどのように関連しているかについて詳しく教えてください。

npm installはこのメッセージを出力しないので、私はそれを非常に疑っています。

なんらかの形でnode-gypに関連しているとは思えません。 私はOSX 10.11を使用しており、新しいNode.jsバージョンのバイナリをリリースして正しくコンパイルする前から、node-sassなどのネイティブ依存関係の_lots_を使用してきました。 だから私のセットアップは大丈夫です。 そしてまだ:

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

Node.js4からすべての依存関係を直接インストールしました。

@ vkarpov15あなたは正しい、私の間違い。 npmで更新した後、ノードでモジュールを要求しようとしたときにエラーが発生しました。 私はそれを数時間動作させようとしましたが、オンラインで与えられたアドバイスのどれも役に立たなかったようでした、それで私は再びダウングレードし、それ以来それを見ていません。

私はそれを解決しました。

npmでmongooseモジュールをインストールすると、そのフォルダーにビルドされたbsonモジュールがありません。 ファイルnode_modules / mongoose / node_modules / mongodb / node_modules / bson / ext / index.jsで、行を変更します

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

bson = require( 'bson');

FreeBSDでも同じ問題があります。

C ++ BSON拡張機能をビルドするにはどうすればよいですか?


npm installは次のとおりです。

> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'
  SOLINK_MODULE(target) Release/obj.target/kerberos.node
  COPY Release/kerberos.node
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'

> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
  CXX(target) Release/obj.target/bson/ext/bson.o
bson.target.mk:88: recipe for target 'Release/obj.target/bson/ext/bson.o' failed
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
[email protected] node_modules/crypto

[email protected] node_modules/bson

ここで同じ問題

@ vkarpov15私は@mgolが言っていることを確認します。 間違ったnode-gyp以外の問題があります。 他にもたくさんのネイティブモジュールが正しく構築されています。 インストール時にエラーは発生しません。

node v4問題があり、 c++ bson extensionが表示されないため、警告js-bson: Failed to load c++ bson extension, using pure JS versionます。

ここで私はインストール時に完全なログですmongoose[email protected] )上のnode v4

apairet$ rm -rf node_modules/mongoose
apairet$ npm install
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bson/ext/bson.o

> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o

[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])

完全を期すために、最新バージョンのmongoose[email protected] )をインストールしましたが、エラーは同じままでした。

apairet$ npm install mongoose<strong i="22">@latest</strong>
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
        maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
                   ^
1 warning generated.
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

追加情報を提供できるかどうか教えてください。
rgds

@antoinepairetノードのどのバージョンが正確ですか? v4のリリースはたくさんあります。

クイックアンサー@ vkarpov15をありがとう。 本当に感謝しています:-)。
以前の投稿でノードのバージョンについて言及していなかったことをお詫びします。 3つのノードバージョンをテストしました。
4.2.14.1.0 、および4.0.0手順は、次のとおりです。

  1. nvm install 4.1.0
  2. rm -rf node_modules /
  3. npmインストール
  4. アプリをテストして、警告が発生するかどうかを確認します

js-bson: Failed to load c++ bson extension, using pure JS versionを持つたびに

OSXで拡張テストを実行しました。 Linuxでは、 4.2.1のみをテストしました。

詳細/テストを提供できるかどうか教えてください。
再度、感謝します

PS: @AsyaHristeva C++ IDEの問題ではありません。 他のネイティブモジュールは問題なくビルドされます:-)

4.1.1のうーん[email protected]は私のMacで正常に動作しますが、mongoose @ 4.3.5はBSONのC ++拡張機能を使用しない[email protected]を使用しているため、どちらの方法でもエラーは発生しません。 このエラーは[email protected]発生しますが、これは、

Node v4.2.4、Mongo v2.6.11、OSX10.11.2でも同じエラーが発生します

npm install [email protected]
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.

> [email protected] install /Users/jw/Work/sp_app/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
        maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
                   ^
1 warning generated.
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/latest/node_modules/npm requires request@'~2.67.0' but will load
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/request,
npm WARN unmet dependency which is version 2.27.0
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

アプリを実行すると、次のようになります。

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

Linuxでは問題がないので、これはOSXの問題なのだろうか。 これは、XCodeによってインストールされたデフォルトのClangコンパイラであるgccと関係があるのでしょうか。

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix

@ vkarpov15は正しいです、マングースを4.4.5に更新してこの問題を修正してください

@ vkarpov15 、この問題は、新しいバージョンのMongooseを古いバージョンのMongoDB(たとえば、バージョン2.X)で実行したことが原因であると想定して正しいですか?

いいえ、mongodbバージョンはそれとは何の関係もありません。

[修繕]

私もこの問題を抱えていました


OS:Windows 10
ノード:v4.2.3
npm:2.14.7


Pythonパスを設定するだけです

npm config set python python2.7

マングースを再インストールします

npm install mongoose


そしてそれはうまくいった。

@ nityanarayan44それは私のために働いた

@mgol
OSX 10.10.5、ノード4.4.2、npm 2.15.0、keystone0.3.17を使用しています

node_modules/keystone/package.json 、依存関係からmongooseを削除してから、

npm config set python python2.7
npm install mongoose

これは私のために働いた:

@ nityanarayan44ソリューションも私のために働いた

同じ問題。私のバージョンはノード2.15、プラットフォームCentosです。

2.15のようなバージョンのNodeはないので、io.jsを意味していると思います。 と
io.jsは長い間アップストリームでサポートされていませんでした。ノード4にアップグレードしてください
または6できるだけ早く。

MichałGołębiowski

@arefm Thx、バージョン3.8.23の更新についてはうまくいきました。さらに、別の問題を解決しました。長さが未定義などです。

@mgol彼はnpmについて話していました。 npm2の最新バージョンは2.15.4です。

@mnpenner私はその

@jwerre私は

@mgol申し訳ありませんが、npmのバージョンは2.15であり、ノードではありません。

@mnpennerはい、あなたは賢い人です!

Keystoneで使用する場合、これは私がそのエラーを乗り越えるために働いたものです:

私のpackage.json depsに以下を追加します。

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

それから

npm install

ついに

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

エラーは発生しません。

@aventurella今日、キーストーンを試しているときに同じ岩にぶつかりました。あなたの解決策に感謝します。

しかし今、私たちはいくつかの無関係なエラーといくつかの欠落したエラーを受け取ります、これは大丈夫ですか?

@ tomwang1013マングースを更新すると問題は解決しましたが、どういうわけか私のアプリはDBに接続していません。

私たちの場合、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)

これは、プロキシが問題である可能性があることを示唆しています。

これについてコメントを目覚めさせて申し訳ありませんが、このスレッドは私たちの問題を解決するのに非常に役立ったので、将来これに当たる他の人のためにこれを投稿したいと思いました。

@aventurella修正してくれてありがとう、

私はWindows10でこの問題を抱えており、「基本的な」例を実行することもできません...インストールファイルは何かを実行するためのすべてのものを提供するか、少なくともそうするための指示を持っているはずです...
これはクソ迷惑です!!!!! :@

@ GST5555リアルタイムでサポートが必要な場合は、次のいずれかのコミュニティに気軽に参加してください。
Gitter.im
スラック

このページは役に立ちましたか?
0 / 5 - 0 評価