I am getting the below error:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Here are my version details:
OS: Windows 7
MongoDB: 2.6.5
Node: 0.12.0
I have tried these things before I posted the issue here.
I went to \node-modules\mongoose\node-modules\mongodb\node-modules\bson folder and made below change in the binding-gyp file
from 'include_dirs': [ '<!(node -e "require(\'nan\')")' ]
to
'include_dirs': ["<!(nodejs -p -e \"require('path').dirname(require.resolve('nan'))\")"]
Ran this command npm install -g node-gyp
I've updated the mongoose version to 3.8.21 inside package.json
Nothing works. Please suggest
Find in npm module mongodb:
..\node_modules\mongodb\node_modules\bson\ext\index.js
Change path to js version in catch block:
bson = require('../build/Release/bson');
To:
bson = require('../browser_build/bson');
Or copy file in:
..\node_modules\bson\build\Release\bson
From:
..\node_modules\bson\browser_build\bson
I had this issue today (Feb 19th, 2016) and I solved it just by installing the latest version of Mongoose. Try putting this in your package.json:
"mongoose": "~4.4"
Hope that helps. Solved it for me!
The problem is when you install mongoose via npm it assumes you have python installed on your windows and tries to build required libraries. Since you do not have python it skips building phase with a warning. But when you start your application, required modules are not there so you get this error.
In order to do things right first install python (version 2.7) on your computer from: https://www.python.org/downloads/ or if u have installed chockolatey just type choco install python2.
Then make sure your python variable is set. You can set it on command prompt like:
SET python=D:\Python27\python.exe
(Of course you should change the path according to your location of python) Then install node-gyp:
npm install -g node-gyp
Now you can reinstall mongoose or whatever module causing the problem:
npm install mongoose
You will see some yellow lines instead of red ones this time but the error will be gone.