如何在Cloudflare工作者中查询MongoDB?

时间:2019-10-05 14:03:48

标签: mongodb webpack-2 cloudflare-workers cloudflare-apps

我正在尝试使用mongodb查询mongodb简单的findOne。 Cloudflare工作者可以提供10毫秒的CPU时间,但是在预览/发布抛出错误期间

我尝试安装这些npm模块

npm i mongodb, mongodb-core, dgram, fs
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)  }

在这里抛出错误-https://pastebin.com/xMKKjdZF

1 个答案:

答案 0 :(得分:3)

当前,Cloudflare Workers不支持原始TCP / UDP,仅支持HTTP / HTTPS。因此,您只能连接到提供HTTP(S)接口的数据库。 MongoDB的协议不是基于HTTP的,因此您需要找到可以放在其前面的某种HTTP API代理。 (还请注意,Cloudflare Workers并非基于Node.js,因此,通常,使用Node的系统API的Node模块将无法工作。)