如何在Node.js无服务器函数中连接并操作Vercel Postgres数据库
纯Node.js无服务器函数连接Vercel Postgres并返回HTML响应
完全可以按照你想的方式实现,不用前端框架或TypeScript,纯Node.js就能搞定。以下是具体步骤:
1. 创建Vercel Postgres数据库
- 打开Vercel控制台,进入你的项目
- 左侧菜单选择「Storage」,点击「Postgres」标签页
- 点击「Create Database」,跟着指引完成创建(Vercel会自动为你的项目注入数据库连接相关的环境变量,无需手动复制)
2. 准备项目依赖
在项目根目录执行命令安装官方适配的Postgres客户端:
npm install @vercel/postgres
3. 编写Node.js无服务器函数
在项目根目录新建api文件夹,里面创建db.js文件,内容如下:
// 导入Vercel Postgres的连接池工具 import { createPool } from '@vercel/postgres'; // 无服务器函数的处理逻辑 export default async function handler(req, res) { // 创建数据库连接池(自动读取Vercel注入的环境变量) const pool = createPool(); try { // 执行SQL查询,这里以查询users表为例 const { rows } = await pool.query('SELECT * FROM users'); // 拼接HTML响应内容 let htmlContent = ` <!DOCTYPE html> <html> <head> <title>数据库内容展示</title> <style> body { font-family: Arial, sans-serif; max-width: 800px; margin: 2rem auto; padding: 0 1rem; } ul { list-style: none; padding: 0; } li { padding: 0.5rem; border-bottom: 1px solid #eee; } </style> </head> <body> <h1>数据库用户列表</h1> <ul> `; // 遍历查询结果,添加到HTML里 rows.forEach(user => { htmlContent += `<li>ID: ${user.id} | 姓名: ${user.name}</li>`; }); htmlContent += ` </ul> </body> </html> `; // 设置响应头为HTML类型,返回内容 res.setHeader('Content-Type', 'text/html'); res.status(200).send(htmlContent); } catch (error) { // 错误处理,返回错误信息的HTML res.status(500).send(` <!DOCTYPE html> <html> <body> <h1>数据库查询失败</h1> <p>错误信息: ${error.message}</p> </body> </html> `); } }
4. 创建测试表并插入数据
- 回到Vercel控制台的Postgres页面,找到「SQL Editor」标签
- 执行以下SQL语句创建测试表:
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL );
- 再插入几条测试数据:
INSERT INTO users (name) VALUES ('张三'), ('李四'), ('王五');
5. 部署并测试
- 将代码提交到关联Vercel的Git仓库,Vercel会自动完成部署
- 部署完成后,访问
<你的Vercel域名>/api/db,就能看到生成的HTML页面,里面展示了数据库中的用户数据
注意事项
- Vercel会自动管理数据库连接,
createPool()无需手动传入连接字符串,直接调用即可 - 无服务器函数的文件名和路径要符合Vercel的规则:必须放在
api目录下,文件名为.js(不用.ts) - 如果需要修改SQL语句,直接修改
pool.query()里的内容即可,比如插入、更新操作都可以用同样的方式实现
内容的提问来源于stack exchange,提问作者jeep
相关产品推荐
相关产品推荐

