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')
,解决了这个问题。