Javascript 找不到模块'/构建/发布/bson';]代码:';未找到模块';}js bson:未能加载c++;bson扩展,使用纯JS版本
我得到以下错误:Javascript 找不到模块'/构建/发布/bson';]代码:';未找到模块';}js bson:未能加载c++;bson扩展,使用纯JS版本,javascript,angularjs,windows,node.js,mongodb,Javascript,Angularjs,Windows,Node.js,Mongodb,我得到以下错误: { [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } js-bson: Failed to load c++ bson extension, using pure JS version 以下是我的版本详细信息: 操作系统:Windows7 MongoDB:2.6.5 节点:0.12.0 在我将问题发布到这里之前,我已经尝试过这些方法 我转到\node modu
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
以下是我的版本详细信息:
- 操作系统:Windows7
- MongoDB:2.6.5
- 节点:0.12.0
\node modules\mongoose\node modules\mongodb\node modules\bson
文件夹,在绑定gyp文件中做了以下更改
从'include_dirs':['package.json
没有任何效果。请建议在npm模块mongodb中查找: ..\node\u modules\mongodb\node\u modules\bson\ext\index.js 在catch块中将路径更改为js版本:
bson = require('../build/Release/bson');
致:
或将文件复制到:
..\node\u modules\bson\build\Release\bson
发件人:
..\node\u modules\bson\browser\u build\bson
在我的例子中,mongoose(
npm install mongoose
)附带的BIT在其节点模块
文件夹中有一个mongodb
包的工作版本
以下步骤使我省去了故障排除工作:
npm安装猫鼬
- 将
复制到我的根node\u modules\mongoose\node\u modules\mongodb
文件夹(覆盖node\u modules
附带的任何版本)npm install mongodb
- 忽略<代码>加载C++ +BSON扩展…<代码>错误(或更改代码以在问题上保持沉默)< /LI>
注意:安装的python版本必须等于或大于2.7.5,小于3.0.0。不幸的是,以上所有答案都只对了一半。解决这个问题花了很长时间 Mongoose bson安装通过npm抛出警告并导致错误
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,您可能需要确保使用正确的visual studio编译器安装npm模块 我已安装Visual Studio 2012,此命令适用于我。 (删除节点_模块目录后) npm安装——msvs\U版本=2012 出于某种原因,node gyp试图使用不正确版本的Visual Studio编译器。我还注意到,“npm install”命令在安装mongodb和mongoose模块时打印出了一条关于not node gyp依赖关系的警告 在使用正确的msvs_版本后,npm安装警告以及运行my nodejs应用程序时的控制台警告消失 您可能还希望确保安装了正确的Python2.7.X版本,而不是Python3.0.X版本
您还需要确保python位于您的环境路径中。尝试过npm安装mongoose--msvs_version=2012,如果您安装了多个Visual,它首先对我有效。复制
bson.js
来自浏览器构建文件夹的代码
second创建新文件bson.js
并粘贴代码
third将新文件保存在
index.js
附近,我尝试了bson=require(“../browser\u build/bson”);
但最后遇到了另一个错误
无法将未定义的属性“BSON\u BINARY\u SUBTYPE\u DEFAULT”设置为
最后,我通过
npm update
简单地解决了这个问题,这将修复mongoose中的bson模块。这是在Windows 7(x64)上唯一对我有帮助的东西:
使用x32版本重新安装node和python。我花了很多时间处理这个错误(加载C++ BSON扩展失败),最后,当我安装了模块<代码>节点GYP(用于构建本机插件),甚至安装了VisualStudio - NoDEJS的Windows SDK时,没有识别组装的模块BSON.No.AS模块。 再说一遍,这个错误是什么意思
事实上,这甚至不是错误。你仍然可以使用mongoose。但是在这种情况下,你没有快速实现bson模块的本机实现,而是得到了js实现,这更慢。我看到了很多提示,比如:“编辑节点模块内部的路径…”-这完全没有用,因为它没有解决问题,只是关闭了错误消息。问题是,当您通过npm安装mongoose时,它假设您的windows上安装了python,并尝试构建所需的库。由于您没有python,它会跳过构建阶段并发出警告。但当您启动应用程序时n、 必需的模块不存在,因此您会遇到此错误 为了做正确的事情,首先从以下位置在您的计算机上安装python(版本2.7):或者如果您已经安装了chockolatey,只需键入
choco install python2
然后确保设置了python变量。您可以在命令提示符下设置它,如下所示:
SET python=D:\Python27\python.exe
(当然,您应该根据python的位置更改路径)
然后安装节点gyp:
npm install -g node-gyp
现在,您可以重新安装mongoose或导致问题的任何模块:
npm install mongoose
这次您将看到一些黄线而不是红线,但错误将消失。我通过安装mogoose版本
3.8.23
npm install mongoose@3.8.23
因此,我也遇到了同样的问题,并且指定的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:”mongodb://localhost/test2-dev“”指向mongoDB数据库的真实路径
如果我的帖子能帮助某人,我会很高兴…试试这个
npm安装bson
和npm更新
在npm模块中查找
// Development specific configuration
// ==================================
module.exports = {
// MongoDB connection options
mongo: {
uri: 'mongodb://localhost/test2-dev'
},
seedDB: true
};
bson = require('../build/Release/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');
}
}
Failed to load c++ bson extension, using pure JS version
npm un node-gyp -g;npm i node-gyp -g
find node_modules/ -type 'f' -exec grep -H 'Release/bson' {} \;
rm -rf node_modules
npm cache clear
npm i
"../build/Release/bson"
bson = require('../build/Release/bson');
bson = require('bson');
"mongoose": "~4.4"
find . -type f -name package.json | xargs grep mongodb
...
./sails-mongo/package.json: "mongodb": "1.4.26",
...
"mongodb": "2.1.7",
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('../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');
}
}
$rm -rf node_modules
$npm --save install bson
$npm --save install mongoose
$npm install
npm install mongoose@4.4
root@keystonejs:~# npm install -g npm-check-updates
debian@keystonejs:~/myproject/manalcjim$ npm-check-updates -u
debian@keystonejs:~/myproject/manalcjim$ npm install
debian@keystonejs:~/myproject/manalcjim$ npm install jade --save