2016-08-02 5 views
1

背景情報にNode.jsのチュートリアル私はこのチュートリアルに従うことをしようとしているが見つからないためBSONモジュールの

に失敗:私は別のLinuxボックス上で実行されているのmongoデータベースを持っている http://cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/

...とfwiw、私は接続して照会できるPHPアプリケーションを持っているので、動作していることは分かっています。

私はmongooseを使用していません...しかし、これはチュートリアルで必要としているので、モンクです。

は、ここに私のpackage.jsonファイルは次のようになります。

{ 
    "name": "testapp", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node ./bin/www" 
    }, 
    "dependencies": { 
    "body-parser": "~1.13.2", 
    "cookie-parser": "~1.3.5", 
    "debug": "~2.2.0", 
    "express": "~4.13.1", 
    "mongodb": "^1.4.4", 
    "monk": "^1.0.1", 
    "morgan": "~1.6.1", 
    "pug": "^2.0.0-beta4", 
    "serve-favicon": "~2.3.0" 
    } 
} 

問題

私はテスト・ノード・アプリケーションを実行しようとすると、私は次のエラーを取得していますメッセージ:

[email protected]:/var/www/html/node/testapp$ node app.js 
{ Error: Cannot find module '../build/Release/bson' 
    at Function.Module._resolveFilename (module.js:440:15) 
    at Function.Module._load (module.js:388:25) 
    at Module.require (module.js:468:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/var/www/html/node/testapp/node_modules/mongodb/node_modules/bson/ext/index.js:15:10) 
    at Module._compile (module.js:541:32) 
    at Object.Module._extensions..js (module.js:550:10) 
    at Module.load (module.js:458:32) 
    at tryModuleLoad (module.js:417:12) 
    at Function.Module._load (module.js:409:3) code: 'MODULE_NOT_FOUND' } 
js-bson: Failed to load c++ bson extension, using pure JS version 

これはindex.jsファイルは次のようになります。

3 try { 
    4   // Load the precompiled win32 binary 
    5   if(process.platform == "win32" && process.arch == "x64") { 
    6   bson = require('./win32/x64/bson'); 
    7   } else if(process.platform == "win32" && process.arch == "ia32") { 
    8   bson = require('./win32/ia32/bson'); 
    9   } else { 
10   bson = require('../build/Release/bson'); 
11   }  
12 } catch(err) { 
13   // Attempt to load the release bson version 
14   try { 
15     bson = require('../build/Release/bson'); 
16   } catch (err) { 
17     console.dir(err) 
18     console.error("js-bson: Failed to load c++ bson extension, using pure JS version"); 
19     bson = require('../lib/bson/bson'); 
20   } 
21 } 

私が試したもの:stackoverflow.com上の他の記事に基づいて

を、私はこのように見えるためにライン15を変更しようとしました:私は、コマンドを実行しようとしました

15     bson = require('bson'); 

sudo npm install bson 

しかし、それは問題を解決しませんでした。

は場合、それは助け、私は私のボックスの "BSON" の検索を行なったし、これらの結果を思い付いた:http://pastebin.com/WKQygGak

システム情報

のUbuntu 15.10

EDIT 1

[email protected]:/var/www/html/node/testapp$ sudo apt-get install gcc make build-essential 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
build-essential is already the newest version. 
gcc is already the newest version. 
make is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 

次に、コマンドにより:

http://pastebin.com/MDerppWB

のお客様ライン10上の誤りだったようですが、私はそれを修正するかどうかはわかりません。

EDIT 2

は、これは私が現在、私のNPMの設定で持っているものである。また、

[email protected]:/var/www/html/node/testapp$ npm config list 
; cli configs 
user-agent = "npm/3.10.3 node/v6.3.1 linux x64" 

; userconfig /home/me/.npmrc 
https-proxy = "http://10.1.1.11:8080/" 
proxy = "http://10.1.1.11:8080/" 
python = "python2.7" 

; globalconfig /usr/etc/npmrc 

; node bin location = /usr/bin/nodejs 
; cwd = /var/www/html/node/testapp 
; HOME = /home/me 
; "npm config ls -l" to show all defaults. 

[email protected]:/var/www/html/node/testapp$ 

私はちょうど「sudoのNPM BSONをインストール」することを試みたし、それが失敗したテストとして私が貼ったペーストビンに見られるのと同じエラー。

答えて

1

ここでは、いくつかのC++依存関係が存在するため、おそらくビルドの必需品が必要です。 following answerを参照するか、次の操作を行ってください。

sudo apt-get install gcc make build-essential 

rm -rf node_modules 
npm cache clean 
npm install 

編集:

これはまた、Pythonの問題である可能性があります。あなたはこれが解決策であることが判明して

npm config set python python2.7 

Othersは同じ問題を抱えます:python 2.7をPATHに、Ubuntuのために設置し、その後のpythonを探すためにNPMを設定されていることを確認します。 Pythonは、ビルドに不可欠な要素があることを証明して以来、次のステップとなります。

編集2:

サイドノート..私はあなたがチュートリアルを次ている知っている..しかし、今後の参考のために私は強くnative mongo driverを使用することをお勧めします。それはORMのマングースよりも速く、使用するのが難しくありません(マングースは使いにくいというよりはむしろ柔軟で演技力のあるものではありません)。

+0

こんにちは。あなたの答えの詳細な結果については、EDIT 1を参照してください – Happydevdays

+0

もう一度。ええええええええええと、私はあなたのために私の設定を投稿しました。 EDIT 2をご覧ください。 – Happydevdays

+0

@HappydevdaysはあなたのパスにPythonですか?あなたは、pythonをタイプしてターミナルでパスを使うことができますか? –

関連する問題