引言:为什么用JavaScript实现REST API快速又简单
创建自己的REST API是理解后端开发的第一步。如果你已经熟悉JavaScript,半小时内就能编写出应用的服务端部分。本文将详细讲解如何使用Node.js和Express框架在JavaScript中编写REST API,我们将创建一个支持标准CRUD操作(创建、读取、更新、删除数据)的待办事项管理API。
本指南适合希望快速启动首个服务器并理解请求、路由和中间件工作原理的初学者。读完本文,你将拥有一个可在Postman或浏览器中测试的可运行API。
步骤 1:配置环境并安装依赖
开始编码前,请确保已安装Node.js(版本16或更高)。如未安装,请从官网下载。运行终端检查安装情况:
node -vnpm -v现在创建项目文件夹并初始化:
mkdir my-apicd my-apinpm init -y安装主要依赖——Express框架,它能极大简化HTTP操作:
npm install express同时安装nodemon(可选),用于代码更改时自动重启服务器:
npm install --save-dev nodemon在package.json文件中添加启动脚本:
"scripts": { "start": "node index.js", "dev": "nodemon index.js"}步骤 2:创建基础服务器和首个路由
在项目根目录创建index.js文件。首先连接Express并在3000端口启动服务器:
const express = require('express');const app = express();const PORT = 3000;
// 解析JSON的中间件app.use(express.json());
// 测试路由app.get('/', (req, res) => { res.send('你好,世界!API工作正常。');});
app.listen(PORT, () => { console.log(`服务器运行在 http://localhost:${PORT}`);});使用命令npm run dev(如果使用nodemon)或node index.js启动服务器。打开浏览器访问http://localhost:3000——你应能看到"你好,世界!API工作正常。"的消息。
恭喜!你刚刚用JavaScript编写了一个REST API。现在让我们添加真正的业务逻辑。
步骤 3:实现任务列表的CRUD操作
我们创建一个临时内存数据存储(对象数组)。在实际项目中你会连接数据库,但对于30分钟的课程来说,这已经足够。
let tasks = [ { id: 1, title: '学习Express', completed: false }, { id: 2, title: '编写API', completed: true }];
let nextId = 3;现在实现四个主要路由:
GET /tasks — 获取所有任务
app.get('/tasks', (req, res) => { res.json(tasks);});POST /tasks — 创建新任务
app.post('/tasks', (req, res) => { const { title } = req.body; if (!title) { return res.status(400).json({ error: '任务标题是必填项' }); } const newTask = { id: nextId++, title, completed: false }; tasks.push(newTask); res.status(201).json(newTask);});PUT /tasks/:id — 更新任务
app.put('/tasks/:id', (req, res) => { const id = parseInt(req.params.id); const { title, completed } = req.body; const task = tasks.find(t => t.id === id); if (!task) { return res.status(404).json({ error: '任务未找到' }); } if (title !== undefined) task.title = title; if (completed !== undefined) task.completed = completed; res.json(task);});DELETE /tasks/:id — 删除任务
app.delete('/tasks/:id', (req, res) => { const id = parseInt(req.params.id); const index = tasks.findIndex(t => t.id === id); if (index === -1) { return res.status(404).json({ error: '任务未找到' }); } tasks.splice(index, 1); res.status(204).send();});步骤 4:测试API
现在你的API已准备好进行测试。你可以使用Postman、curl或任何其他HTTP请求发送工具。以下是一些示例:
// 获取所有任务GET http://localhost:3000/tasks
// 创建新任务POST http://localhost:3000/tasksContent-Type: application/json
{ "title": "测试API"}
// 更新任务PUT http://localhost:3000/tasks/1Content-Type: application/json
{ "completed": true}
// 删除任务DELETE http://localhost:3000/tasks/2尝试发送不同请求,观察服务器如何响应。这是理解REST API实际工作方式的好方法。
结论:下一步做什么?
你刚刚在几分钟内就创建了一个功能完整的JavaScript REST API!这是进一步学习的坚实基础。以下是一些可以继续添加的功能建议:
- 连接真实数据库(例如使用Mongoose连接MongoDB或使用Prisma连接PostgreSQL)
- 使用Joi或express-validator等库添加数据验证
- 实现用户认证(JWT令牌)
- 为任务列表添加分页和排序功能
- 使用Jest或Mocha编写自动化测试
现在你知道了如何用JavaScript编写REST API。这项技能对于创建全栈应用、微服务,甚至自动化日常任务都非常有用。祝你在开发之路上一帆风顺!