MongoDB NodeJS驱动程序的浏览器兼容性(调试帮助)

时间:2016-04-27 23:35:35

标签: node.js lambda node-mongodb-native serverless-framework

试图弄清楚我可以浏览mongodb native nodejs驱动程序的问题是什么。我假设我的设置中出现了问题,因为我尝试使用谷歌搜索,如果MongoDB NodeJS驱动程序和浏览器有任何已知的当前兼容性问题,但几天后尝试没有结论;(

在browserify上运行我的代码后,我得到了一个

TypeError: require(...).native is not a function

我在驱动程序的github repo上读到这个驱动程序依赖于某些本机功能以及kerberos和node-gyp。我在我的机器上安装了驱动程序没有任何问题npm install mongodb --save所以我不知道是否可能是这种情况。

我没有调试想法,所以我转向了受祝福的SO社区 :)

我正在使用无服务器框架为AWS Lambda开发(因此,我担心如果驱动程序实际上在Lambda实例上运行,因为驱动程序需要一些本机功能......)。这是我的测试代码

var MongoClient = require('mongodb').MongoClient;
var x = "Hello NodeJS";

console.log(x);

MongoClient.connect("mongodb://localhost:27017/test", (err, db) => {
  console.log("Error null? " + (err == null ? "YES" : "NO"));
  console.log("DB null? " + (db == null ? "YES" : "NO"));
});

我正在使用一些ES6语法,例如import,让bc在我的原始代码中我也用babelify转换它但删除了,所以只是普通的browserify产生了一些问题

我像

一样运行它
browserify simple.js -o browserified.js

如果有人可以了解这一点,我会很感激。

由于

1 个答案:

答案 0 :(得分:1)

我在MongoDB JIRA服务器上创建了一个问题,我确认今天的驱动程序没有在浏览器中运行。当然,我并没有尝试在浏览器中运行它,而是在Node中运行它,但正如我的朋友@dvlsg在我的问题的评论中指出的那样,浏览器可能会重新填充一些对于正确实现MongoDB驱动程序很重要的东西。因此,如果你今天在那里拔掉你的头发,尝试一种解决方法,不包括使用browserify捆绑mongodb驱动程序。

驱动程序维护者确认他正在开发一个可以在浏览器中运行的版本,它可能会按照我需要的方式工作,但即使是alpha发布也没有准备好,希望如果您将来阅读它。