作为后端新手,最近我完成了一个简单的 Node+Express 接口从开发到部署的全过程。从本地代码编写到阿里云服务器发布,踩了不少坑也积累了一些经验,整理成这篇教程,希望能帮到和我一样刚入门的同学。
前提
先去阿里云购买一台轻量应用服务器或者云ECS服务器,我购买的是轻量应用服务器,配置如下: 系统镜像我选的是Ubuntu(友帮拓),因为这个镜像比较纯净,可以自己安装各个依赖的版本。

一、本地开发:创建简单的 Express 接口
首先我们需要在本地开发一个基础的 Express 服务,返回固定测试数据。
1. 初始化项目
新建项目文件夹并初始化(我这里命名为 node-api-test
):
bash
# 创建文件夹
mkdir node-api-test && cd node-api-test
# 初始化 npm 项目
npm init -y
# 安装
Express npm install express
2. 编写服务代码
在文件夹中创建 app.js
文件,代码如下:
js
const express = require('express');
const app = express();
const port = 3000; // 服务端口
// 允许跨域(方便前端调用)
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
next();
});
// 测试接口:返回固定数据
app.get('/api/test', (req, res) => {
const data = {
status: 200,
message: '成功返回测试数据',
data: {
name: '测试用户',
age: 25,
hobbies: ['编程', '服务器部署']
}
};
res.json(data);
});
// 启动服务
app.listen(port, () => {
console.log(`服务已启动,访问:http://localhost:${port}/api/test`);
});
3. 本地测试
运行服务并验证是否正常工作:
js
node app.js
打开浏览器访问 http://localhost:3000/api/test
,如果能看到 JSON 格式的返回数据,说明本地服务没问题。
二、代码托管:提交到公司 GitLab
由于使用公司内部 GitLab 托管代码,需要将本地代码推送到远程仓库(如果还没创建仓库,先在 GitLab 上新建一个)。
1. 本地 Git 配置
bash
# 初始化 Git 仓库(如果未初始化)
git init
# 添加文件到暂存区
git add .
# 提交到本地仓库
git commit -m "初始化:简单的 Express 测试接口"
2. 关联 GitLab 仓库
复制公司 GitLab 仓库的 HTTPS 地址(格式类似 https://gitlab公司域名/用户名/node-api-test.git
),然后关联:
bash
# 关联远程仓库
git remote add origin 你的GitLab仓库HTTPS地址
# 推送到远程仓库(首次推送需要输入账号密码)
git push -u origin main
# 若默认分支是master则用git push -u origin master
三、服务器部署:阿里云 Ubuntu 环境配置
接下来开始配置阿里云轻量应用服务器,我使用的是 Ubuntu 系统,以下是详细步骤。
1. 连接服务器
通过 SSH 连接到你的阿里云服务器(替换为你的服务器公网 IP):
登录阿里云控制台,在这里这是服务器密码
登录服务器
bash
ssh 用户名@服务器公网IP # 例如:ssh root@123.45.67.89
首次登录需要输入密码,登录成功后进入服务器终端。
2. 修复可能的包管理问题
如果执行 apt
命令时出现 dpkg was interrupted
错误,先修复:
bash
# 修复 dpkg 配置
sudo dpkg --configure -a
# 清理缓存并更新系统
sudo apt clean
sudo apt autoremove -y
sudo apt update -y
sudo apt upgrade -y
3. 服务器上安装必要工具
(1)安装 Git
bash
sudo apt install git -y
# 验证安装
git --version
# 输出 git version x.x.x 即成功
(2)配置 Git 凭证缓存
为了避免每次拉取代码都输入账号密码,配置缓存:
bash
# 配置全局用户名和邮箱(与 GitLab 一致)
git config --global user.name "你的Git用户名"
git config --global user.email "你的公司邮箱"
# 缓存凭证 24 小时(86400秒)
git config --global credential.helper 'cache --timeout=86400'
(3)安装 Node.js(使用 NVM)
NVM(Node Version Manager)是管理 Node 版本的工具,推荐使用:
bash
# 安装 NVM(如果连接 raw.githubusercontent.com 超时,见下方解决方法)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
# 若上面命令超时,改用国内镜像
curl -o- https://cdn.jsdelivr.net/gh/nvm-sh/nvm/v0.39.3/install.sh | bash
# 刷新环境变量
source ~/.bashrc
# 安装 Node.js 16.x(稳定版本)
nvm install 16
nvm use 16
# 验证安装
node -v # 输出 v16.x.x
npm -v # 输出 8.x.x
四、部署服务:拉取代码并启动
1. 拉取 GitLab 代码
bash
# 创建项目目录
mkdir -p /root/projects && cd /root/projects
# 克隆仓库(使用 HTTPS 地址)
git clone https://gitlab公司域名/用户名/node-api-test.git
# 进入项目目录
cd node-api-test
首次克隆会提示输入 GitLab 用户名和密码(或个人访问令牌),输入后等待代码拉取完成。
2. 安装项目依赖
bash
# 安装 express 依赖
npm install
3. 用 PM2 启动服务
PM2 是 Node 应用的进程管理工具,能保证服务在后台持续运行:要不然关闭窗口之后,就无法访问了
bash
# 全局安装 PM2
npm install pm2 -g
# 启动服务并命名(方便管理)
pm2 start app.js --name "node-api-test"
# 查看服务状态
pm2 list # 若 Status 为 online 则表示启动成功
PM2 常用命令:
- 重启服务:
pm2 restart node-api-test
- 停止服务:
pm2 stop node-api-test
- 查看日志:
pm2 logs node-api-test
五、开放端口:配置防火墙,(下面2步都要)
服务启动后,需要开放 3000 端口才能外部访问。因为node代码写的是3000
1. 服务器内部防火墙(UFW)
bash
# 开放 3000 端口
sudo ufw allow 3000/tcp
# 启用防火墙(首次启用需确认)
sudo ufw enable
# 验证端口是否开放
sudo ufw status # 看到 3000/tcp 允许即为成功
2. 阿里云控制台配置
登录阿里云轻量应用服务器控制台:
- 找到你的服务器,进入「防火墙」配置
- 点击「添加规则」,端口范围填
3000
,授权对象填0.0.0.0/0
- 保存规则
如图:

六、测试接口:验证部署结果
所有配置完成后,通过以下方式测试接口:
- 浏览器访问 直接在地址栏输入:
http://你的服务器公网IP:3000/api/test
结果如图:

- Postman 测试
选择 GET 方法,输入上述 URL,发送请求查看返回结果。
- 前端代码调用
js
fetch('http://你的服务器公网IP:3000/api/test') .then(res => res.json()) .then(data => console.log(data)) .catch(err => console.error('请求失败', err));
如果看到和本地测试相同的 JSON 数据,说明部署成功!
七、后续更新代码流程
当本地代码更新后,只需以下步骤即可同步到服务器:
- 本地提交并推送
bash
git add .
git commit -m "更新说明"
git push
- 服务器拉取并重启
bash
cd /root/projects/node-api-test # 进入项目目录
git pull # 拉取最新代码
pm2 restart node-api-test # 重启服务
总结
整个过程从本地开发到服务器部署,核心步骤包括:
- 开发基础接口并本地验证
- 代码托管到 GitLab
- 服务器环境配置(Node、Git、PM2)
- 拉取代码并启动服务
- 开放端口并测试访问
作为后端新手,第一次部署时遇到了不少网络和权限问题,但一步步排查后终于成功。如果大家在操作中遇到类似问题,欢迎留言交流~