Код ошибки: 10021, сообщение об ошибке: «Неперехваченная ошибка типа: n (…).подключение не является функцией»

#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.