使用 Express 写接口
在现代 Web 开发中,构建高效的 RESTful API 是非常重要的。Node.js 和其上的 Express 框架为开发者提供了一种简便而强大的方式来创建这些接口。本文将详细介绍如何使用 Express 来编写和部署一个简单的 RESTful API,涵盖从安装到实现增删改查(CRUD)操作的全过程。
准备工作
安装 Node.js 和 npm
首先确保你的开发环境中已安装了 Node.js 和 npm。你可以通过以下命令检查是否已经安装:
node -v
npm -v
如果没有安装,请访问 Node.js 官网下载并安装适合你操作系统的版本。
创建项目
接下来,创建一个新的项目目录,并初始化一个新的 npm 项目:
mkdir my-api
cd my-api
npm init -y
这会生成一个 package.json
文件,记录项目的依赖信息等。
安装 Express
现在可以安装 Express 到你的项目中了:
npm install express --save
同时建议安装 Nodemon,它可以在代码更改时自动重启服务器,非常适合开发阶段使用:
npm install nodemon --save-dev
更新 package.json
中的启动脚本,以便使用 Nodemon:
"scripts": {"start": "nodemon app.js"
}
编写第一个 API 接口
创建一个名为 app.js
的文件,并添加以下代码来设置一个基本的 Express 应用程序:
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;// 解析 JSON 请求体
app.use(express.json());// 示例数据
let items = [{ id: 1, name: 'Item One' },{ id: 2, name: 'Item Two' }
];// 获取所有项
app.get('/items', (req, res) => {res.json(items);
});// 根据 ID 获取单个项
app.get('/items/:id', (req, res) => {const item = items.find(i => i.id === parseInt(req.params.id));if (!item) return res.status(404).send('Item not found.');res.json(item);
});// 添加新项
app.post('/items', (req, res) => {const item = {id: items.length + 1,name: req.body.name};items.push(item);res.status(201).json(item);
});// 更新项
app.put('/items/:id', (req, res) => {const item = items.find(i => i.id === parseInt(req.params.id));if (!item) return res.status(404).send('Item not found.');item.name = req.body.name;res.json(item);
});// 删除项
app.delete('/items/:id', (req, res) => {const index = items.findIndex(i => i.id === parseInt(req.params.id));if (index === -1) return res.status(404).send('Item not found.');items.splice(index, 1);res.sendStatus(204);
});// 启动服务器
app.listen(port, () => console.log(`Server running on port ${port}`));
这段代码实现了对 /items
路径下的 CRUD 操作。
测试 API
使用 Postman 或 Curl
你可以使用 Postman 这样的工具来测试你的 API,或者直接在终端中使用 curl 命令进行测试。
例如,添加一个新的项目:
curl -X POST http://localhost:3000/items -H "Content-Type: application/json" -d '{"name":"New Item"}'
获取所有项目:
curl http://localhost:3000/items
使用 JavaScript 测试
也可以在同一个项目里新建一个测试文件,比如 test.js
,利用 Axios 或 Fetch API 来测试你的接口。
const axios = require('axios');async function testApi() {try {// 添加新项let response = await axios.post('http://localhost:3000/items', { name: 'Test Item' });console.log(response.data);// 获取所有项response = await axios.get('http://localhost:3000/items');console.log(response.data);} catch (error) {console.error(error);}
}testApi();
结语
感谢您的阅读!如果您对使用 Express 编写接口或者其他相关话题有任何疑问或见解,欢迎继续探讨。