首页 > 其他分享 >使用 Express 搭建 RESTful API:实现用户管理系统的增删改查

使用 Express 搭建 RESTful API:实现用户管理系统的增删改查

时间:2025-01-21 10:28:06浏览次数:3  
标签:const users res Express 改查 用户 API data id

在现代 Web 开发中,后端接口的实现通常是基于 RESTful API 的设计。Express 是一个轻量级、灵活的 Node.js Web 框架,非常适合快速搭建 RESTful API。本文将通过一个完整的示例,展示如何使用 Express 和 CORS 中间件搭建一个支持增删改查(CRUD)操作的用户管理系统。我们将实现以下功能:

  1. 获取所有用户数据。

  2. 通过 ID 查询单个用户。

  3. 添加新用户(支持自增 ID)。

  4. 修改用户信息。

  5. 删除用户。


一、环境准备

1. 安装 Node.js

确保你已经安装了 Node.js。可以通过访问 Node.js 官网 下载并安装。

2. 创建项目文件夹

在你选择的目录下创建一个名为 express 的文件夹。

3. 初始化项目

打开 VSCode,将 express 文件夹拖入 VSCode 中。在 VSCode 的终端中(快捷键 Ctrl+J 打开终端),运行以下命令初始化项目并安装必要的依赖:

bash复制

npm init -y
npm install express cors --save
  • npm init -y:快速初始化项目,生成 package.json 文件。

  • npm install express cors --save:安装 Express 和 CORS 中间件,并将其添加到项目依赖中。

  • 简单使用跳转express启动搭建环境


二、编写代码

express 文件夹中创建一个名为 express.js 的文件,并写入以下代码:

JavaScript复制

// 引入 Express 框架,用于创建和管理 HTTP 服务器
const express = require('express');

// 引入 CORS 中间件,用于处理跨域请求
const cors = require('cors');

// 创建一个 Express 应用实例
const app = express();

// 使用 CORS 中间件,允许跨域请求
// 注意:在开发环境中可以这样使用,但在生产环境中需要配置更安全的参数
app.use(cors());

// 解析 JSON 格式的请求体
app.use(express.json());

// 定义一个数组,包含多个用户数据
let data = [
    {
        id: 1,
        name: '张三',
        age: 28,
        createTime: "2020-01-01",
        email: "zhangsan@example.com",
    },
    {
        id: 2,
        name: '李四',
        age: 22,
        createTime: "2021-02-15",
        email: "lisi@example.com",
    },
    {
        id: 3,
        name: '王五',
        age: 35,
        createTime: "2019-08-23",
        email: "wangwu@example.com",
    },
    {
        id: 4,
        name: '赵六',
        age: 40,
        createTime: "2018-05-30",
        email: "zhaoliu@example.com",
    },
    {
        id: 5,
        name: '孙七',
        age: 29,
        createTime: "2022-11-11",
        email: "sunqi@example.com",
    },
];

// 1. 获取所有用户数据
app.get('/users', (req, res) => {
    res.json(data);
});

// 2. 通过 ID 查询单个用户
app.get('/users/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const user = data.find(user => user.id === id);

    if (!user) {
        res.status(404).json({ message: '用户未找到' });
    } else {
        res.json(user);
    }
});

// 3. 添加新用户(支持自增 ID)
app.post('/users', (req, res) => {
    const newUser = req.body;

    // 检查必要字段是否存在
    if (!newUser.name || !newUser.age) {
        res.status(400).json({ message: '缺少必要字段' });
        return;
    }

    // 自动生成一个新的自增 ID
    const newId = data.length > 0 ? data[data.length - 1].id + 1 : 1;

    // 为新用户分配自增 ID
    const userWithId = {
        id: newId,
        ...newUser
    };

    // 将新用户添加到数据数组中
    data.push(userWithId);

    res.status(200).json({ code: 200, data: "新增成功" });
});

// 4. 修改用户信息
app.put('/users/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const updatedUser = req.body;

    const index = data.findIndex(user => user.id === id);
    if (index === -1) {
        res.status(404).json({ message: '用户未找到' });
        return;
    }

    data[index] = { ...data[index], ...updatedUser };
    res.status(200).json({ code: 200, data: "修改成功" });
});

// 5. 删除用户
app.delete('/users/:id', (req, res) => {
    const id = parseInt(req.params.id);
    const index = data.findIndex(user => user.id === id);

    if (index === -1) {
        res.status(404).json({ message: '用户未找到' });
        return;
    }

    data.splice(index, 1);
    res.status(200).json({ code: 200, data: "删除成功" });
});

// 监听 3000 端口,启动服务器
app.listen(3000, () => {
    console.log('示例应用正在监听 3000 端口 !');
});

三、代码说明

1. CORS 中间件

使用 cors() 中间件允许跨域请求,方便前端开发。在生产环境中,建议配置更严格的跨域策略。

2. JSON 请求体解析

通过 app.use(express.json()) 解析 JSON 格式的请求体,使得后端可以直接接收 JSON 数据。

3. 自增 ID 的实现

在添加新用户时,通过以下逻辑生成自增 ID:

JavaScript复制

const newId = data.length > 0 ? data[data.length - 1].id + 1 : 1;

如果数组中有用户数据,则取数组中最后一个用户的 id 并加 1;如果数组为空,则默认从 1 开始。

4. CRUD 操作

  • GET /users:获取所有用户数据。

  • GET /users/:id:通过 ID 查询单个用户。

  • POST /users:添加新用户。

  • PUT /users/:id:修改用户信息。

  • DELETE /users/:id:删除用户。


四、运行服务器

在终端中运行以下命令,启动服务器:

bash复制

node express.js

如果一切正常,控制台会打印:

示例应用正在监听 3000 端口 !


五、测试接口

1. 使用 Postman 测试

安装 Postman 后,可以通过以下方式测试接口:

获取所有用户

  • 方法:GET

  • 地址:http://localhost:3000/users

查询单个用户

  • 方法:GET

  • 地址:http://localhost:3000/users/1

添加新用户

  • 方法:POST

  • 地址:http://localhost:3000/users

  • 请求体:

    JSON复制

    {
        "name": "新用户",
        "age": 25,
        "createTime": "2024-01-01",
        "email": "newuser@example.com"
    }
  • 返回结果:

    JSON复制

    {
        "code": 200,
        "data": "新增成功"
    }

修改用户信息

  • 方法:PUT

  • 地址:http://localhost:3000/users/1

  • 请求体:

    JSON复制

    {
        "name": "张三更新",
        "age": 30
    }
  • 返回结果:

    JSON复制

    {
        "code": 200,
        "data": "修改成功"
    }

删除用户

  • 方法:DELETE

  • 地址:http://localhost:3000/users/1

  • 返回结果:

    JSON复制

    {
        "code": 200,
        "data": "删除成功"
    }

六、总结

本文通过一个完整的示例,展示了如何使用 Express 和 CORS 中间件搭建一个支持。

 

 

标签:const,users,res,Express,改查,用户,API,data,id
From: https://blog.csdn.net/weixin_66708577/article/details/145270658

相关文章

  • DevExpress ASP.NET Web Forms v24.2 最新版本系统环境配置要求
    本文档包含有关安装和使用 DevExpressASP.NETWebForms控件的系统要求的信息。点击获取DevExpressv24.2正式版.NETFrameworkDevExpressASP.NETWebForms控件支持以下.NET框架版本。如果您需要DevExpress产品的早期版本,请咨询“在线客服”获取。IDEDevExpressASP.......
  • [使用 Anthropic 管理员 API 自动管理组织资源]
    使用Anthropic管理员API自动管理组织资源在现代企业环境中,组织资源的管理是一个复杂且资源密集的任务。Anthropic提供的管理员API使得资源管理更加高效和自动化。本文将深入探讨如何使用管理员API来管理组织的成员、工作空间和API密钥。技术背景介绍Anthropic......
  • 使用Anthropic API的Python和TypeScript SDK快速入门
    在当今AI驱动的应用程序中,如何高效地调用强大的AI模型是开发人员面临的重要任务之一。Anthropic提供的Python和TypeScriptSDK,使得集成其AIAPI变得无比简单。无论你是通过AmazonBedrock还是GoogleCloudVertexAI进行开发,AnthropicSDK都为你提供了流畅的使用体验。技术......
  • 使用AI API的全球支持和应用指南
    技术背景介绍随着人工智能(AI)的迅猛发展,越来越多的企业和开发者开始集成AIAPI服务以提升产品的智能水平和用户体验。全球范围内,AIAPI的应用逐步渗透到各个行业。然而,了解所处地区是否支持访问这些服务是首先需要解决的问题。核心原理解析AIAPI通常托管在云端服务器上......
  • 使用 Java 获取淘宝推荐商品列表 API 接口的示例代码解析
    在电商领域,推荐系统是提升用户体验和促进销售的重要工具。淘宝开放平台提供了taobao.item.recommend接口,允许开发者根据用户行为、搜索关键词或分类ID获取推荐商品列表。本文将详细介绍如何使用Java调用该接口,并解析返回的数据。一、淘宝推荐商品接口简介taobao.item.reco......
  • 券商接口api有哪些?如何获取合法合规的券商接口api?
    Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>交易相关的券商接口api是非常关键的部分。例如订单下单接口,它允许用户通过程序发送交易指令,如买入、卖出股票等操作。这个接口在量化交易......
  • Java—常用的API
    API:API不需要背,用的时候会查就行。Math:是一个帮助我们用于进行数学计算的工具类私有化构造方法,所有的方法都是静态的math类的常用方法:调用方式:Math.方法名()调用Math中的abs:Math.abs(-88)将去绝对值打印为88注意:以int类型为例,取值范围:-2147483648~2147483647如果没有......
  • JavaScript笔记APIs篇02——DOM事件
     黑马程序员视频地址:黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source=0a2d366696f87e241adc64419bf12cab&spm_id_from=333.788.videopod.episodes&p=78 目录事件监听(绑定)事件监听其他版本(了解)事件类型事件对象......
  • apifoxCli在linux部署运行教程
    转载于 https://apifox.com/help/automated-testing/executing-test/apifox-cli/ #1、pull镜像dockerpullnode:22-alpine#2、创建目录mkdir-p/home/testTool/apifox/script#3、运行nodejs+并使用npm安装apifoxdockerrun\--nameapifox\-eTZ=Asia/Shanghai\--......
  • Java 基础 API
    APIAPI:应用程序编程接口,即已经写好的东西,可以直接使用String字符串的内容是不会更改的Stringname="abc";name="def";//name="def"是创建了一个新的字符串,然后把引用赋给了name构建方法Strings="abc";//直接赋值Strings=newString();/......