Как сделать запрос в MongoDB с работниками Cloudflare? - PullRequest
1 голос
/ 05 октября 2019

Я пытаюсь запросить у mongodb простой findOne при использовании 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 Ответ

2 голосов
/ 07 октября 2019

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

...