Vercel 作为部署 Node.js 后端服务
时间: 2025-07-11 15:41:35 浏览: 6
### 使用 Vercel 部署 Node.js 后端服务
Vercel 是一个支持 Serverless 架构的部署平台,可以用于部署前端项目以及后端 API 服务。在 Vercel 中部署 Node.js 后端服务主要依赖其 Serverless Functions 的功能。
#### 初始化项目
创建一个新的项目目录,并进入该目录,在终端中运行以下命令来初始化 `package.json` 文件:
```bash
npm init -y
```
接着安装 Express 框架,它是一个流行的 Node.js Web 应用框架:
```bash
npm install express
```
#### 创建主入口文件
在项目根目录下创建一个名为 `api/index.js` 的文件,这将是你的 Serverless Function 的主入口文件。下面是一个简单的 GET 和 POST 请求处理示例:
```javascript
const express = require('express');
const app = express();
app.get('/api/hello', (req, res) => {
res.status(200).json({ message: 'Hello from Vercel!' });
});
app.post('/api/data', (req, res) => {
res.status(200).json({ message: 'Data received!' });
});
module.exports = app;
```
#### 跨域设置
如果前后端处于不同的域名或端口下,则需要处理跨域问题。可以在 Express 应用中使用 `cors` 中间件实现跨域请求支持:
```bash
npm install cors
```
然后修改 `api/index.js`:
```javascript
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.get('/api/hello', (req, res) => {
res.status(200).json({ message: 'Hello from Vercel!' });
});
app.post('/api/data', (req, res) => {
res.status(200).json({ message: 'Data received!' });
});
module.exports = app;
```
#### 配置 vercel.json
在项目的根目录下创建 `vercel.json` 文件,并添加以下配置,将所有 `/api/` 开头的请求重定向到 `api/index.js`:
```json
{
"rewrites": [
{
"source": "/api/(.*)",
"destination": "/api"
}
]
}
```
#### 部署到 Vercel
可以通过两种方式部署到 Vercel:
1. **通过 Vercel 网站部署**
登录 [Vercel](https://vercel.com/) 网站,在 Overview 页面点击 "Add New Project",选择需要部署的项目代码仓库,点击 Import 并按照提示完成部署操作。
2. **通过 Vercel CLI 部署**
安装 Vercel CLI 工具:
```bash
npm install -g vercel
```
登录 Vercel 账号:
```bash
vercel login
```
运行以下命令进行部署:
```bash
vercel
```
#### 测试接口
部署完成后,访问类似 `https://your-project.vercel.app/api/hello` 的 URL 来测试接口是否正常工作。
#### 完整 Demo 地址
一个完整的 Node.js + Express + Vercel 示例项目地址可参考 GitHub 上的开源模板,例如:[Node.js + Vercel 示例](https://github.com/vercel/examples/tree/main/solutions/node-express)[^2]。
---
阅读全文
相关推荐


















