如何使用Cloudflare workers在MongoDB中查询?

如何使用Cloudflare workers在MongoDB中查询?,mongodb,webpack-2,cloudflare-workers,cloudflare-apps,Mongodb,Webpack 2,Cloudflare Workers,Cloudflare Apps,我正在尝试使用mongodb查询mongodb simple findOne。Cloudflare worker的CPU时间为10毫秒,但在预览/发布期间抛出错误 我已尝试安装这些npm模块 npm i mongodb, mongodb-core, dgram, fs 此处抛出错误-当前,Cloudflare Workers不支持原始TCP/UDP,仅支持HTTP/HTTPS。因此,您只能连接到提供HTTP(S)接口的数据库。MongoDB的协议不是基于HTTP的,所以您需要找到某种HTTP

我正在尝试使用mongodb查询mongodb simple findOne。Cloudflare worker的CPU时间为10毫秒,但在预览/发布期间抛出错误

我已尝试安装这些npm模块

npm i mongodb, mongodb-core, dgram, fs

此处抛出错误-

当前,Cloudflare Workers不支持原始TCP/UDP,仅支持HTTP/HTTPS。因此,您只能连接到提供HTTP(S)接口的数据库。MongoDB的协议不是基于HTTP的,所以您需要找到某种HTTP API代理,可以放在它前面。(还请注意,Cloudflare Workers不基于Node.js,因此在一般情况下,使用Node系统API的节点模块将不起作用。)

顺便说一句,有一些非常好的MongoDB HTTP接口可用-请参阅以下链接以获取综合列表yes@Kenton我检查了CF worker文档,但在TCP连接上未发现任何接口。所以尝试调用aws lambda,但webpack为aws sdk抛出错误。最终通过mongo stitch实现了这一点。@jwpers我检查了接口,需要检查它们是否在serverless上可用。我目前正在试验无服务器技术。@Vishvendra Singh如果您正在托管自己的MongoDB实例,那么您可以使用运行MongoDB的服务器上的接口来允许HTTP调用。然后,您可以在Cloudflare worker中对HTTP mongo接口进行HTTP调用。接口非常棒,是@jwpers的理想选择,完全解决了我的问题。不幸的是,我使用的是mongoDB云。在搜索时,我发现这个repo可以从worker调用lambda
var MongoClient = require('mongodb').MongoClient;
try{
    var db = await MongoClient.connect('mongodb+srv://mongoURL',{ useNewUrlParser: true,useUnifiedTopology: true });
    var dbo = db.db("test");
    var result = await dbo.collection("testcollection").findOne()
    const init = {
        status: 200,
        headers: { "Access-Control-Allow-Origin": "*", 'content-type': 'application/json' },
    }
    return new Response(JSON.stringify(result), init)
} catch(e) { console.log(e); return new Response(JSON.stringify(result), init)  }