Как выполнить запрос в 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, не будут работать.)