#node.js #webpack #mongoose #serverless #cloudflare-workers
#node.js #webpack #мангуст #бессерверный #cloudflare-рабочие
Вопрос:
Я пытаюсь использовать пакет mongoose с рабочими Cloudflare. После webpack При развертывании с использованием бессерверного развертывания я получаю это сообщение об ошибке.
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: deploying route: example.com/api
Serverless: ❌ Fatal Error, Script Not Deployed!
Serverless: --> Error Code:10021
--> Error Message: "Uncaught TypeError: n(...).connect is not a function
at line 950
at line 1 in n
at line 1
at line 1
"
Serverless: ✅ Routes Deployed
В строке 950
n(83).connect("mongodb://localhost/db",........
мой основной код
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request));
});
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/db", {
useNewUrlParser: true
});
async function handleRequest(r) {
return new Response(r);
}
Я тоже пробовал пакет mongodb.
Показывает ту же проблему.
Ответ №1:
Эти пакеты предполагают, что вы работаете на Node.js и они используют Node.js API. Cloudflare Workers не основан на Node.js. Вместо этого он реализует подмножество API веб-платформы, особенно API Service Workers.
В настоящее время вы не можете создать TCP-соединение от Worker, таким образом, вы не можете подключиться напрямую к серверу Mongo. Вместо этого вам нужно будет формулировать запросы к базе данных в виде HTTP-запросов с использованием fetch()
API.