推出 PlanetScale 的 JavaScript 无服务器驱动
今天,我们很高兴向大家介绍 **PlanetScale 的 JavaScript 无服务器驱动**,一个兼容 Fetch API 的数据库驱动。
这个新的驱动和基础设施更新为你带来了以下功能:
- 能够在 Cloudflare Workers、Vercel Edge Functions 和 Netlify Edge Functions 等环境中存储和查询 PlanetScale 的数据。
- 基础设施改进,包括全球路由支持,提高连接的可靠性和性能。
提示 我们提供了一个示例应用程序,展示如何在 Cloudflare Workers、Vercel Edge Functions 和 Netlify Edge Functions 中实现这些功能。
为什么需要新的驱动
目前为止,你无法在这些环境中使用 PlanetScale,因为它们需要通过 HTTP 而不是其他网络协议建立外部连接。而其他 MySQL 驱动通过原始的 TCP 套接字使用 MySQL 二进制协议交互。我们的新驱动则采用了安全的 HTTP 协议,这使得你可以在这些受限制的环境中使用 PlanetScale。该驱动适用于任何使用 Fetch API 的环境。
除了 Cloudflare Workers、Vercel Edge Functions 和 Netlify Edge Functions,这些以及其他提供商(如 AWS)的无服务器环境通常需要数据库支持数百、数千甚至数万个并发连接。PlanetScale 一直能够轻松处理这些高并发连接,而此次底层基础设施的改变提供了更快的连接路径。
PlanetScale 新一代基础设施
支持新驱动的是一个新的 HTTP API 和全球路由基础设施。注意:当前 HTTP API 尚未被记录在案,我们计划在正式发布时提供相关文档。
在受限环境之外,我们的数据库连接 HTTP 接口为无服务器环境提供了其他好处,例如:
- 现代的 TLS 栈,用于通过 TLS 1.3 加速连接。
- 使用 HTTP/2 实现连接复用。
- 协议压缩支持(如 gzip、brotli 和 snappy)。
这些改进共同提升了在无服务器环境中的使用体验。
新的基础设施和 API 还支持.global routing(全球路由)。类似于 CDN,全球路由显著减少了地理位置距离较远的客户端连接到数据库的延迟,这在无服务器和边缘计算环境中非常常见。客户端连接到我们网络中最近的地理节点,然后通过长时间保持的连接池在内部网络上回传,最终到达实际目标。在美国境内,从美国西部连接到美国东部的数据库延迟可能减少 **100 毫秒以上**,距离越远,减幅越显著。
如何使用 PlanetScale 的 JavaScript 无服务器驱动
首先,在你的环境中安装驱动:
npm install @planetscale/database
你可以在 GitHub 驱动代码和文档 中查看详细信息。
接着,使用 PlanetScale 提供的主机地址、用户名和密码配置连接。在数据库仪表板的 Overview 页面中,点击 Connect 按钮,并在 Connect with 的下拉菜单中选择 @planetscale/database
。将提供的主机地址、用户名和密码复制并粘贴到你的代码中。在部署代码时,建议在你选择的无服务器平台中创建环境变量来存储这些信息。
连接示例代码:
import { connect } from '@planetscale/database' const config = { host: '<host>', username: '<user>', password: '<password>' }
配置完连接信息后,你可以连接到 PlanetScale 并执行 SQL 命令:
const conn = connect(config) const results = await conn.execute('SHOW TABLES') console.log(results)
该驱动还会处理你的 SQL 语句的安全性以帮助防止诸如 SQL 注入 的安全问题。例如,以下示例展示了带有参数的查询:
conn.execute('SELECT * FROM users WHERE email=?', ['foo@example.com'])
更多关于驱动及其功能的内容可以访问 PlanetScale JavaScript 无服务器驱动文档。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:http://www.choupangxia.com/2025/09/07/planetscale-javascript/