使用Express框架在服务端创建API

使用Express框架在服务端创建API
乐活星球导读
本文详细介绍了如何通过Node.js
和npm
快速创建接口服务器,实现前后端分离架构下的数据交互与服务支撑。
1.环境准备
以Ubuntu
系统为例,确保服务器端已经安装了Node.js和npm。
1.1. 安裝Node.js和npm
1 | 更新软件包列表 |
1.2. 查看安装版本(验证)
在终端运行以下命令检查是否已安装:
1 | nodejs --version # 显示 Node.js 版本 |
2.初始化项目
创建项目文件夹(如果通过1panel
创建的站点,进入到该站点index
下即可),并在该项目目录下运行:
1 | npm init -y # 初始化项目 |
3.安装Express
在项目目录下运行:
1 | npm install express # 安装Express |
4.添加代码
在项目目录下创建一个名为index.js
的文件,并添加以下代码:
1 | const express = require('express'); // 引入 Express 模块,用于创建 Web 服务器 |
注意
:以上配置中定义了端口号,记得在防火墙放行,放行端口运行:
1 | ufw allow <port> # Ubuntu放行指令 |
(1)引入数据库服务
以PostgreSQL
客户端(包含连接池功能)为例:
① 安装 pg cors express,在项目目录下运行:
1 | npm install pg cors express # 安装数据库依赖 |
② 修改代码加载环境变量,在index.js文件里面加入:
1 | const { Pool } = require('pg'); // 引入 pg 模块,并从中解构出 Pool 类 |
④ 重启应用,验证是否成功生效。
(2)CORS 配置(跨域)
① 安装 cors,在项目目录下运行:
1 | npm install cors # 安装 dotenv 管理环境变量 |
② 修改代码加载环境变量,在index.js文件里面加入以下内容:
1 | const cors = require('cors'); // 引入 cors 模块,用于处理跨域请求 |
④ 重启应用,验证是否成功生效。
(3)使用环境变量配置文件
① 安装 dotenv,在项目目录下运行:
1 | npm install dotenv # 安装 dotenv 管理环境变量 |
② 在项目目录下创建.env
文件,并按照格式写入以下配置:
1 | 数据库配置 |
③ 修改代码加载环境变量,在index.js文件里面加入以下内容:
1 | require('dotenv').config(); // 加载 dotenv 模块,用于读取 .env 文件中的环境变量(新增) |
④ 重启应用,验证是否成功生效。
5. 启动服务
在项目目录下运行以下命令来启动服务器:
1 | node index.js # 启动服务 |
如果启动成功,你会看到Server is running on http://localhost:3001, 现在,你的API服务器应该在 http://localhost:3000 上运行。你可以通过浏览器访问该地址,或者使用工具(如Postman)来测试POST请求。如果通过1panel创建站点,绑定域名,这时就可直接使用域名访问,页面应该会返回Hello World!
。
6. 使用pm2管理启动服务
6.1.安装 pm2
使用 npm(Node.js 的包管理器)全局安装 pm2:
1 | sudo npm install pm2@latest -g # 全局安装pm2 |
6.2.验证安装
安装完成后,可以通过以下命令验证 PM2 是否安装成功,如果输出显示 PM2 的版本号,则表示 PM2 已成功安装。
1 | pm2 -v # 显示 pm2 版本 |
6.3.启动应用程序
使用 PM2 启动你的应用程序,例如 index.js:
1 | pm2 start index.js # 启动 index.js |
如果启动时要指定应用程序名称,可通过以下命令操作:
1 | pm2 start index.js --name "api-1" |
6.4.查看应用程序状态
保存至pm2进程列表:
1 | pm2 save # 保存进程列表 |
6.5.设置开机自启
配置 PM2 在服务器重启时自动启动应用程序:
1 | pm2 startup # 设置开机自启 |
6.6. 常见pm2指令合集
(1)查看所有运行应用程序及其状态
1 | pm2 list # 查看所有运行应用 |
(2)修改现有运行中的进程名称
1 | pm2 restart index.js --name "index" # 先停止并重新启动 |
(3)停止应用
1 | pm2 stop <name|id> # 停止某个应用(通过应用名称或ID) |
(4)删除应用(停止并从列表中移除)
1 | pm2 delete <name|id> # 删除某个应用(通过应用名称或ID) |
(4)强制终止所有 PM2 进程
1 | pm2 kill # 强制终止所有 PM2 进程 |
(5)查看服务器资源占用
1 | pm2 monit # 实时监控 |
(6)重启所有应用
1 | pm2 restart all # 重启所有应用 |