The*_*eja 184 javascript dependencies mongoose node.js express
这里有一个总节点noob.我一直在尝试设置一个示例节点应用程序但每次尝试运行时都会弹出以下错误:
节点应用
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)
Run Code Online (Sandbox Code Playgroud)
Pra*_*evu 200
我猜你在安装mongodb库时没有make工具.我建议你这样做
xcode-select --install(在mac上)或sudo apt-get install gcc make build-essential(在ubuntu上)
并运行
rm -rf node_modules
npm cache clean
npm install
Run Code Online (Sandbox Code Playgroud)
或者只是基于@tobias注释的npm更新(在安装build-essential之后)
npm update
Run Code Online (Sandbox Code Playgroud)
小智 99
我刚解决了这个问题.
当您通过npm安装mongoose模块时,它的文件夹中没有内置的bson模块.在文件中node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js,更改行
bson = require('../build/Release/bson');
Run Code Online (Sandbox Code Playgroud)
至
bson = require('bson');
Run Code Online (Sandbox Code Playgroud)
然后使用npm安装bson模块.
Dan*_*nia 36
我已经通过以下方式对raspbian(debian for raspberry)获取"无法加载c ++ bson扩展"的问题进行了排序:
npm install -g node-gyp
Run Code Online (Sandbox Code Playgroud)
然后
npm update
Run Code Online (Sandbox Code Playgroud)
mbo*_*ski 26
我无法解决这个问题
到现在.首先,您必须拥有Pradeep Mahdevu提到的系统包.那些是:
xcode-select --install (on a mac)
Run Code Online (Sandbox Code Playgroud)
要么
sudo apt-get install gcc make build-essential (on ubuntu)
Run Code Online (Sandbox Code Playgroud)
然后我安装了node-gyp
npm install -g node-gyp
Run Code Online (Sandbox Code Playgroud)
就像datadracer所说的那样,但他建议的npm更新也是有风险的.它更新所有模块,这可能是危险的(有时版本之间的API更改).
我建议进入node_modules/mongodb/node_modules/bson目录并从那里使用
node-gyp rebuild
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
nev*_*fox 19
一个常见的问题是node-gyp需要Python 2.x,如果你的系统python指向3.x,它将无法编译bson,没有警告.您可以通过python在npm配置中设置指向系统上2.x可执行文件的全局密钥来解决此问题.例如,在Arch Linux上:
npm config -g set python "/usr/bin/python2"
Run Code Online (Sandbox Code Playgroud)
Oak*_*Oak 18
在WIN 8.1上
好像我在package.json文件中使用了错误版本的mongoose.
我从package.json中删除了行"mongoose":"^ 3.8.15"
CLI:npm install mongoose --save
现在它在package.json中说"mongoose":"^ 4.0.6",我的错误消失了.
Ant*_*ony 10
我正在运行Ubuntu 14.04并为我修复它我必须为节点创建一个符号链接指向nodejs,如下所述:
一旦我这样做,我重新运行这些命令:
rm -rf node_modules
npm cache clean
npm install
Run Code Online (Sandbox Code Playgroud)
只是想说我也有错误
Failed to load c++ bson extension, using pure JS version
Run Code Online (Sandbox Code Playgroud)
但没有其他错误.我尝试了一切,结果我在package.json文件中指定的mongodb驱动程序与我的MongoDB版本不兼容.我将它更改为我的最新版本(1.4.34)并且它有效!
小智 7
所以在我的情况下,我首先尝试检查此目录/ node_modules/mongoose/node_modules /,只是为了确认我有bson模块.我发现我首先没有它,然后我就跑了
npm install bson
然后
npm update
所有都得到了排序.在Ubuntu中进行了测试和测试.
小智 7
我终于通过在package.json中将我的mongodb依赖版本更新为"~2.0.36"来纠正此错误.
"dependencies": {
"consolidate": "~0.9.1",
"express": "3.x",
"mongodb": "~2.0.36",
"mongoose": "^4.1.12"
}
Run Code Online (Sandbox Code Playgroud)
小智 5
不幸的是,以上所有答案只对了一半.. 花了很长时间才弄明白..
通过 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
Run Code Online (Sandbox Code Playgroud)
这就像魔法一样!!
bson 扩展消息只是一个警告,我在我的 Nodejs 应用程序中一直收到它。
需要检查的事项:
| 归档时间: |
|
| 查看次数: |
181178 次 |
| 最近记录: |