2025年5月,Node.js官方发布了v24.0.0版本,带来V8引擎13.6升级、npm 11集成、权限模型稳定化等重磅特性,让后端开发效率再上新台阶。而Express 5.1作为Node.js生态最主流的Web框架,也在2025年初正式发布,强化了路由安全与异步错误处理。今天就用这对黄金组合,带大家从零开始,30分钟搭建一个支持CRUD操作的企业级RESTful API,全程代码可复制,零基础也能直接上手。
一、环境准备:5分钟装好Node.js 24和Express 5.1
首先得把开发环境搭起来。Node.js 24相比旧版本有重大更新,比如Windows系统不再支持MSVC编译器,需要改用ClangCL,但安装包已经内置了这些依赖,直接下一步到底就行。
1. 安装Node.js 24
访问Node.js官网,下载LTS版本24.5.0(2025年7月最新稳定版),根据系统选择对应安装包。安装完成后,打开终端输入以下命令验证:
node -v # 输出v24.5.0
npm -v # 输出11.3.0(Node.js 24内置npm 11)
2. 初始化项目
新建一个文件夹(比如node-api-demo),终端进入该目录,执行:
npm init -y # 自动生成package.json
npm install express@5.1.0 # 安装Express 5.1正式版
此时目录下会出现node_modules和package.json,基础环境就准备好了。
二、核心开发:15分钟写出RESTful API核心代码
Express 5.1的路由设计更简洁,异步错误处理也更智能。我们以“产品管理API”为例,实现GET(查询)、POST(创建)、PUT(更新)、DELETE(删除) 四大功能。
1. 搭建基础服务器
新建app.js文件,写入以下代码:
const express = require('express');
const app = express();
const port = 3000;
// 解析JSON请求体(Express 5.1内置,无需额外安装body-parser)
app.use(express.json());
// 测试接口:访问http://localhost:3000返回"API running"
app.get('/', (req, res) => {
res.send('API running');
});
// 启动服务器
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
2. 设计RESTful路由
在app.js中继续添加产品相关路由,这里用内存数组模拟数据库(后面会对接MongoDB):
// 模拟产品数据
let products = [
{ id: 1, name: 'Node.js实战', price: 59.9 },
{ id: 2, name: 'Express全攻略', price: 69.9 }
];
// 1. 获取所有产品(GET /api/products)
app.get('/api/products', (req, res) => {
res.json(products);
});
// 2. 获取单个产品(GET /api/products/:id)
app.get('/api/products/:id', (req, res) => {
const product = products.find(p => p.id === parseInt(req.params.id));
if (!product) return res.status(404).send('产品不存在');
res.json(product);
});
// 3. 创建产品(POST /api/products)
app.post('/api/products', (req, res) => {
const newProduct = {
id: products.length + 1,
name: req.body.name, // 从请求体获取产品名
price: req.body.price // 从请求体获取价格
};
products.push(newProduct);
res.status(201).json(newProduct); // 201表示创建成功
});
// 4. 更新产品(PUT /api/products/:id)
app.put('/api/products/:id', (req, res) => {
const product = products.find(p => p.id === parseInt(req.params.id));
if (!product) return res.status(404).send('产品不存在');
product.name = req.body.name || product.name; // 若请求体有name则更新
product.price = req.body.price || product.price;
res.json(product);
});
// 5. 删除产品(DELETE /api/products/:id)
app.delete('/api/products/:id', (req, res) => {
const productIndex = products.findIndex(p => p.id === parseInt(req.params.id));
if (productIndex === -1) return res.status(404).send('产品不存在');
products.splice(productIndex, 1); // 从数组中删除
res.status(204).send(); // 204表示无返回内容
});
这段代码实现了完整的产品管理API,每个接口都遵循RESTful规范(比如用HTTP方法区分操作类型,用状态码表示结果)。Express 5.1的路由写法和旧版本基本兼容,但异步错误处理更智能——如果路由回调中抛出错误,会自动传递给错误处理中间件,不用再写try/catch了。
三、数据库集成:5分钟对接MongoDB实现数据持久化
内存数组重启服务器就会丢失数据,实际开发中需要数据库。MongoDB是Node.js生态最常用的NoSQL数据库,我们用它来存储产品数据。
1. 安装依赖并连接MongoDB
先安装MongoDB驱动:
npm install mongoose # MongoDB的Node.js驱动
然后在app.js顶部添加数据库连接代码(需要先在MongoDB官网注册免费集群,获取连接字符串):
const mongoose = require('mongoose');
// 替换为你的MongoDB连接字符串(格式:mongodb+srv://<用户名>:<密码>@cluster0.mongodb.net/数据库名)
mongoose.connect('mongodb+srv://your-username:your-password@cluster0.mongodb.net/productDB')
.then(() => console.log('MongoDB connected'))
.catch(err => console.error('MongoDB连接失败:', err));
2. 定义数据模型
创建models/Product.js文件,定义产品数据结构:
const mongoose = require('mongoose');
const productSchema = new mongoose.Schema({
name: { type: String, required: true }, // 产品名必填
price: { type: Number, required: true }, // 价格必填
createdAt: { type: Date, default: Date.now } // 自动记录创建时间
});
module.exports = mongoose.model('Product', productSchema);
3. 修改路由对接数据库
把之前的内存数组操作替换为数据库操作,例如POST接口:
const Product = require('./models/Product');
// 创建产品(POST /api/products)
app.post('/api/products', async (req, res) => {
try {
const newProduct = new Product({
name: req.body.name,
price: req.body.price
});
await newProduct.save(); // 保存到MongoDB
res.status(201).json(newProduct);
} catch (err) {
res.status(400).json({ error: err.message }); // 捕获验证错误(如必填项缺失)
}
});
其他接口(GET、PUT、DELETE)类似,只需将数组操作替换为Product.find()、Product.findByIdAndUpdate()等Mongoose方法即可。
四、API测试:5分钟用Postman验证所有接口
接口写好了,得测试一下是否能用。Postman是API测试神器,免费且直观,步骤如下:
1. 启动服务器
终端执行node app.js,看到Server running at http://localhost:3000和MongoDB connected说明服务正常。
2. 测试POST接口(创建产品)
- 打开Postman,选择POST方法,输入http://localhost:3000/api/products
- 在Body→raw→JSON中输入:{ "name": "Node.js+MongoDB实战", "price": 79.9 }
- 点击Send,返回状态码201和产品数据,说明创建成功。
3. 测试GET接口(查询产品)
- 方法选择GET,地址http://localhost:3000/api/products
- 发送后会返回所有产品,包括刚才创建的新数据。
五、企业级案例:Node.js API的真实应用
1. Netflix:用Node.js支撑1.82亿用户的API架构
Netflix的API平台每天处理数十亿请求,早期用Java构建,后来迁移到Node.js,原因是非阻塞I/O模型更适合高并发场景。他们通过插件化设计(如NodeQuark框架)实现微服务拆分,每个API模块独立部署,故障互不影响。
来源:OpenJS Foundation技术博客(2020年发布,数据截至当时)
2. PayPal:Node.js让支付API响应速度提升35%
PayPal的支付API用Node.js重构后,平均响应时间从200ms降到130ms,代码量减少30%。他们开源的@
paypal/checkout-server-sdk可以直接集成到我们的API中,实现支付功能。
来源:PayPal开发者文档(2025年更新)
六、部署上线:3分钟发布到云服务器
开发完成后,只需两步即可部署:
1. 把代码传到云服务器(如阿里云ECS、腾讯云CVM);
2. 安装Node.js,执行node app.js启动服务,或用pm2进程管理工具保持后台运行:
npm install pm2 -g
pm2 start app.js # 后台运行API服务
总结
用Node.js 24+Express 5.1开发RESTful API,最大的感受是简洁且高效:无需复杂配置,几行代码就能实现企业级接口,配合MongoDB可快速扩展功能。文中所有代码都经过实测,零基础同学跟着敲一遍,30分钟就能跑通整个流程。现在就打开编辑器,动手试试吧!
(注:文中代码已上传至GitHub仓库,可直接下载运行)