Как выполнить запрос в MongoDB с помощью рабочих Cloudflare?

Я пытаюсь запросить простой findOne mongodb с помощью mongodb. Рабочий Cloudflare дает 10 мс процессорного времени, но во время предварительного просмотра / публикации выдает ошибку

Я пробовал установить эти модули 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 ответ

Решение

В настоящее время Cloudflare Workers не поддерживает необработанный TCP/UDP, только HTTP/HTTPS. Следовательно, вы можете подключаться только к базам данных, которые предлагают интерфейсы HTTP(S). Протокол MongoDB не основан на HTTP, поэтому вам нужно найти какой-то прокси HTTP API, который вы можете поставить перед ним. (Также обратите внимание, что Cloudflare Workers не основан на Node.js, поэтому в целом модули Node, которые используют системные API-интерфейсы Node, не будут работать.)

Другие вопросы по тегам