我在使用 Vercel 无服务器函数时,创建新文档时遇到了很长的冷启动时间。为了加速请求,我想在 Vercel 边缘函数上运行 API,但边缘运行时不支持 MongoDB 官方 Node 驱动程序。有没有解决这个限制的方法或者我可以使用非官方驱动程序?
一种方法是使用Prisma ORM与MongoDB。Vercel的Edge函数不支持大多数Node.js API(参考:https://vercel.com/docs/concepts/functions/edge-functions)。
但是,您可以通过使用他们的Prisma数据代理来绕过它,该代理允许您通过HTTP与数据库进行交互。(参考:https://www.prisma.io/blog/database-access-on-the-edge-8F0t1s1BqOJE)
这里有几个选项。
假设您正在使用MongoDB进行托管,您可以使用他们的Atlas Data API,它是一个HTTP REST API。您需要重写您的数据库查询/操作代码来使用fetch()
。
我刚刚创建了mongodb-rest-relay,它是mongodb
驱动程序的插拔替代品(即API兼容),但是通过HTTP中继每个请求。目前的想法是在无服务器基础架构上运行中继的另一端,但我也可能添加一个选项来使用Atlas Data API作为终点。我仍在尝试找出哪种方式最好。