根据express的路由实现简单的模块化(增删改查)

根据express的路由实现简单的模块化(增删改查)

  • 项目目录

    在这里插入图片描述

  • 桌面新建一个demo项目

  • 初始化项目npm init -y

  • package.json配置脚本(在终端安装热部署npm i nodemon)

    {
      "name": "demo",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "start": "nodemon ./src/app.js"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "dependencies": {
        "cors": "^2.8.5",
        "express": "^4.18.1",
        "nanoid": "^3.3.4",
        "nodemon": "^2.0.16"
      }
    }
    
  • 在根目录下新建src文件夹,在src新建文件app.js

  • 在终端启动项目:npm start

    在这里插入图片描述

  • 在根据目录下新建文件user_data.js(用作数据测试)

    const users = [
      { id: 1, username: "zhangsan", nickname: "张三", age: 20 },
      { id: 2, username: "zhaoliu", nickname: "赵六", age: 15 },
      { id: 3, username: "wangwu", nickname: "王五", age: 21 },
      { id: 4, username: "lisi", nickname: "李四", age: 13 },
    ];
    
    module.exports.users = users;
    
  • app.js(入口文件)中

    • 安装模块expressnpm i express

    • 安装解决跨域的第三方模块corsnpm i cors

      const userRouter = require("./router/user");
      
      const express = require("express");
      const cors = require("cors");
      
      const app = express();
      
      // 解决跨域
      app.use(cors());
      // 解析JSON数据
      app.use(express.json());
      // 解析urlencoded数据
      app.use(
        express.urlencoded({
          extended: true,
        })
      );
      
      // 使用路由中间件
      app.use("/user", userRouter);
      
      app.listen(8000, () => {
        console.log("服务器开启成功");
      });
      
  • src文件下新建router文件,在router文件下新建文件夹user.js(专门给路由为/user放在一个模块)

    const express = require("express");
    const { nanoid } = require("nanoid");
    const { users } = require("../../user_data");
    // 创建路由对象
    const userRouter = express.Router();
    
    // 查询
    userRouter.get("/", (req, res) => {
      res.send(users);
    });
    
    // 添加
    userRouter.post("/", (req, res) => {
      users.push({ ...req.body, id: nanoid() });
      res.send(users);
    });
    
    // 删除
    userRouter.delete("/:id", (req, res) => {
      users.forEach((item, index) => {
        if (item.id == req.params.id) {
          users.splice(index, 1);
        }
      });
      res.send(users);
    });
    
    // 修改
    userRouter.patch("/", (req, res) => {
      users.forEach((item, index) => {
        if (item.id == req.body.id) {
          for (const itemkey in req.body) {
            item[itemkey] = req.body[itemkey];
          }
        }
      });
      res.send(users);
    });
    
    // 导出用户路由
    module.exports = userRouter;
    
  • 这里测试用Postman(接口测试工具)(自己测试,我已经测试过了,这里不做展示了)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值