You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:52:54