使用 Express 写接口

news/2025/2/13 17:38:49/

在现代 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 编写接口或者其他相关话题有任何疑问或见解,欢迎继续探讨。


http://www.ppmy.cn/news/1571762.html

相关文章

【ESP32】ESP-IDF开发 | WiFi开发 | HTTP服务器

1. 简介 1.1 HTTP HTTP(Hyper Text Transfer Protocol),全称超文本传输协议,用于从网络服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档…

腾讯云HAI部署DeepSeek结合Ollama API搭建智能对话系统

前言 本文将详细介绍如何在腾讯云HAI平台上部署DeepSeek模型,并配置使用Ollama API服务以实现对外部请求的支持。通过对前期准备、部署流程、API服务配置及使用的详细阐述,希望能为读者提供一个全面且实用的指南,助力AI应用的高效开发和部署…

如何从0开始将vscode源码编译、运行、打包桌面APP

** 网上关于此的内容很少,今天第二次的完整运行了,按照下文的顺序走不会出什么问题。最重要的就是环境的安装,否则极其容易报错,请参考我的依赖版本以及文末附上的vscode官方指南 ** 第一步:克隆 VSCode 源码 首先…

使用Python爬虫获取1688 App原数据API接口

一、引言 在电商领域,数据是企业决策、市场分析和产品优化的关键要素。1688作为国内领先的B2B电商平台,汇聚了海量的商品信息和交易数据。通过获取1688 App的原数据API接口,企业可以精准把握市场动态,了解竞争对手的策略&#xf…

smart代理VSwebshare哪家http代理商的IP代理综合质量由于911代理?

在选择HTTP代理商时,综合考虑其IP代理的质量至关重要,本文将比较Smart代理与Webshare两家HTTP代理商在多个方面优于911代理,并解释为何需要进行这种代理商之间的对比。 如何考核一家HTTP代理商的IP代理综合质量? 为了评估一家HTT…

ASP.NET Core SignalR的分布式部署

假设聊天室程序被部署在两台服务器上,客户端1、2连接到了服务器A上的ChatRoomHub,客户端3、4连接到服务器B上的ChatRoomHub,那么客户端1发送群聊消息时,只有客户端1、2能够收到,客户端3、4收不到;在客户端3…

解决MybatisPlus updateById更新数据时将没传的数据也更新成了null

首先,MybatisPlus在调用自带的更新接口updateById时,如果没加任何配置,默认是不会将前端没传的数据也更新成null的。即MyBatisPlus不会更新传入实体中为null的字段,只会更新设置了不为null的值。 如果发现没传的也更新成null了的话…

C++ 实践扩展(Qt Creator 联动 Visual Studio 2022)

​ 这里我们将在 VS 上实现 QT 编程,实现如下: 一、Vs 2022 配置(若已安装,可直接跳过) 点击链接:​​​​​Visual Studio 2022 我们先去 Vs 官网下载,如下: 等待程序安装完成之…