mongodb - 如何使用 Cloudflare 工作人员在 MongoDB 中进行查询?
问题描述
我正在尝试使用 mongodb 查询 mongodb simple findOne。Cloudflare 工作人员提供 10 毫秒 CPU 时间,但在预览/发布期间抛出错误
我试过安装这些 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
解决方案
目前,Cloudflare Workers 不支持原始 TCP/UDP,仅支持 HTTP/HTTPS。因此,您只能连接到提供 HTTP(S) 接口的数据库。MongoDB 的协议不是基于 HTTP 的,因此您需要找到某种可以放在它前面的 HTTP API 代理。(另请注意,Cloudflare Workers 不是基于 Node.js,因此通常使用 Node 的系统 API 的 Node 模块将无法工作。)
推荐阅读
- excel - 将几个参数传递给 sub
- sql - 查询以列出所有用户并首先对其应用偏移条件,然后是其他过滤器
- sql - 当该字段有多个值时,如何按字段的较低值分组?谷歌 Bigquery 和 SQL
- ios - 如何将数据从应用程序委托传输到另一个类
- vue.js - 使用自定义组件模拟 Vue 插件功能
- r - 在 dplyr 格式中使用 ggplot geom_jitter() 函数调用中的列名
- node.js - Dockerizing 一个 NodeJS 应用程序:package.json 在本地可以正常工作,但不能在容器内工作
- javascript - 试图循环遍历表行数据
- sql-server - SSIS 派生列将当前年份 (YYY) 的前 3 个值添加到字符串日期 (MMDDY)
- ios - 在 iOS 13 深色模式下问题 cgColor 切换