-1

我正在尝试将猫鼬包与 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 包。显示同样的问题。

4

1 回答 1

0

这些包假定您在 Node.js 上运行并且它们使用 Node.js API。Cloudflare Workers 不基于 Node.js。相反,它实现了 Web 平台 API 的一个子集,尤其是 Service Workers API。

目前,您无法从 Worker 创建 TCP 连接,因此您无法直接连接到 Mongo 服务器。相反,您需要使用fetch()API 将数据库查询表述为 HTTP 请求。

于 2019-03-06T14:44:48.787 回答