Node.js bundle.js bundle.js:1未捕获错误:找不到模块'/node_modules\mongodb core\lib\topologies/./../package.json';
我得到以下错误:Node.js bundle.js bundle.js:1未捕获错误:找不到模块'/node_modules\mongodb core\lib\topologies/./../package.json';,node.js,mongodb,browserify,Node.js,Mongodb,Browserify,我得到以下错误: bundle.js:1未捕获错误:找不到模块'/node\u modules\mongodb ore\lib\topologies/./../package.json' 这是我的版本说明: 操作系统:Windows10 MongoDB:2.2.16 MongoDB核心:2.1.2 节点:6.9.2 我使用了npm安装bson ext并将\node\u modules\mongodb core\node\u modules\bson ext\ext\index.js更改为 try
bundle.js:1未捕获错误:找不到模块'/node\u modules\mongodb ore\lib\topologies/./../package.json'
这是我的版本说明:
操作系统:Windows10
MongoDB:2.2.16
MongoDB核心:2.1.2
节点:6.9.2
我使用了npm安装bson ext
并将\node\u modules\mongodb core\node\u modules\bson ext\ext\index.js
更改为
try {
// Load the precompiled win32 binary
if(process.platform == "win32" && process.arch == "x64") {
bson = require('bson');
} else if(process.platform == "win32" && process.arch == "ia32") {
bson = require('bson');
} else {
bson = require('bson');
}
} catch(err) {
console.log(err)
// Attempt to load the release bson version
try {
bson = require('bindings')('bson.node');
} catch (err) {
throw new Error("js-bson: Failed to load c++ bson extension, using pure JS version");
}
}
而原文是:
bson = require('./win32/x64/bson');
因为当我尝试browserify range.js>bundle.js
时,它在mongoDB core
中找不到bson ext module
我不确定这种操作是否会导致上述错误
这是我的package.json文件:
"dependencies": {
"browserify": "^13.1.1",
"bson": "^1.0.1",
"d3": "^4.4.0",
"express": "^4.14.0",
"hbs": "^4.0.1",
"jsdom": "^9.9.1",
"mongodb": "^2.2.16",
"mongodb-core": "^2.1.2"
}
我还不能确认这一点,但我认为问题在于出于安全原因,MongoDB的JavaScript(Node.js)驱动程序不适用于浏览器。不清楚OP中的问题是否是由于Browserify错误地解析相对路径或其他原因造成的,但不管怎样,首选技术是通过节点服务器将请求代理到MongoDB实例 Mongo在此处列出了这方面的现成解决方案: 另请注意
--rest
选项,该选项允许应用程序通过URL模式直接从数据库中读取:
正如文档中提到的,出于安全考虑,这不是一个好的做法,但可能有助于原型设计。我还不能确认这一点,但我认为问题在于出于安全原因,MongoDB的JavaScript(Node.js)驱动程序不适合在浏览器中使用。不清楚OP中的问题是否是由于Browserify错误地解析相对路径或其他原因造成的,但不管怎样,首选技术是通过节点服务器将请求代理到MongoDB实例 Mongo在此处列出了这方面的现成解决方案: 另请注意
--rest
选项,该选项允许应用程序通过URL模式直接从数据库中读取:
正如文档中提到的,对于安全问题来说,这不是一个好的做法,但可能有助于原型设计。在OSX 10.10上看到同样的问题,
node@5.9.1
。我的package.json中只有“mongodb”:“^2.2.16”
,因为npm`应该自动安装deps。但是,我看到mongodb-core
使用带有bson-ext
的optionalPeerDependencies
字段,并且mongodb-core
中有几个块试图选择性地要求bson-ext
。出于某种原因,本机的bson ext
libs没有在npm的install
脚本上为我编译,所以我注释掉了可选的requires,。。。当我的应用程序编译时,我仍然在OP中遇到了相同的问题。Browserify可能无法正确解决该路径?更多信息:指向mongodb+Browserify作为一个糟糕的组合…在OSX 10.10上看到了相同的问题,node@5.9.1
。我的package.json中只有“mongodb”:“^2.2.16”
,因为npm`应该自动安装deps。但是,我看到mongodb-core
使用带有bson-ext
的optionalPeerDependencies
字段,并且mongodb-core
中有几个块试图选择性地要求bson-ext
。出于某种原因,本机的bson ext
libs没有在npm的install
脚本上为我编译,所以我注释掉了可选的requires,。。。当我的应用程序编译时,我仍然在OP中遇到了同样的问题。Browserify可能无法正确解析该路径?更多信息:指向mongodb+Browserify作为一个糟糕的组合…呃,不幸的是,简单REST API没有CORS头,因此您无法单独使用它从浏览器中查询DB。没用,谢谢!这就是问题所在。我不熟悉Node.js,在我的浏览器中错误地使用了.js
文件要求mongoDB。几天前,我第二次遇到了这个问题,通过从我的.js
浏览器使用的文件中删除require('mongodb')
,解决了这个问题。呃,不幸的是,简单的RESTAPI没有CORS头,因此您不能单独使用它从浏览器中查询DB。没用,谢谢!这就是问题所在。我不熟悉Node.js,在我的浏览器中错误地使用了.js
文件要求mongoDB。几天前,我第二次遇到这个问题,通过从我的.js
浏览器使用的文件中删除require('mongodb')
,解决了这个问题。