美文网首页
Express子应用程序以及创建模块路由

Express子应用程序以及创建模块路由

作者: 听书先生 | 来源:发表于2022-03-29 14:44 被阅读0次
  • 子应用程序与主应用程序:

express模块每一次执行都会创建一个应用,而每一个子应用都会通过use的方法挂载到主应用上。
需要注意的是:只有主应用程序能挂载端口号,因为每一个子应用挂载端口的话,无法找到入口程序

1、创建子应用程序game.js和user.js

// 游戏部分的中间件
const express = require('express');

const game = express();

game.use('/', (req, res, next) => {
    res.send('/game')
})

module.exports = game;
// 用户部分的中间件
const express = require('express');

const user = express();

user.use('/', (req, res, next) => {
    res.send('/user')
})

module.exports = user;

2、创建一个主入口程序

const express = require("express");
const app = express();
const game = require("./app/game.js");
const user = require("./app/user.js");

app.use('/game', game);
app.use('/user', user);

app.use((err, req, res, next) => {
   res.status(500).send(`页面异常.`); // 如果请求返回的状态码为500,那么抛出错误
})

app.listen(3000, () => console.log('http://localhost:3000'))
  • express的路由:
    路由是指的接收用户请求,处理用户数据,返回结果给用户的一套程序,核心就是URL;

Router路由模块化:
express.Router类可以创建模块化,可以挂载路由对象.

创建game游戏模块(先创建一个routes文件目录,routes下存放的则是你的路由模块,比如:你有游戏模块game以及用户模块user,则可以创建gameRouter.js和userRouter.js文件)

gameRouter.js:

const express = require("express");

const gameRouter = express.Router();
const game = require('./game/game.js')

// 游戏模块路由
gameRouter.post('/', game.addGame);
gameRouter.delete('/:uid', game.deleteGame);
gameRouter.delete('/', game.deleteAllGame);
gameRouter.put('/', game.putGame);
gameRouter.get('/:uid', game.qryGame);
gameRouter.get('/', game.qryAllGame);

module.exports = gameRouter;

我们将game模块下所有的接口数据均放在一个game.js文件中,这样便于模块化管理
game.js代码:

// 所有game模块的接口数据
const game = {
    // 新增游戏名称
    addGame: (req, res) => {
        res.send('新增了一个游戏')
    },
    // 1. 删除单个
    deleteGame: (req, res) => {
        let {
            uid
        } = req.params;
        res.send(`删除${uid}游戏名称`)
    },
    // 2. 删除所有
    deleteAllGame: (req, res) => {
        res.send(`删除所有的游戏名称`)
    },

    // 修改游戏名称
    putGame: (req, res) => {
        res.send(`修改游戏名称`)
    },

    // 查询
    // 1. 查询某一个的详情
    qryGame: (req, res) => {
        let {
            uid
        } = req.params;
        res.send(`查询${uid}游戏名称`)
    },
    // 2. 查询所有数据
    qryAllGame: (req, res) => {
        res.send(`查询所有的游戏名称`)
    },
};


module.exports = game;

最后我们在主程序模块导入gameRouter模块

const express = require("express");
const app = express();

const gameRouter = require("./routes/gameRouter.js");


app.use('/game', gameRouter);

app.use((err, req, res, next) => {
   res.status(500).send(`页面异常.`); // 如果请求返回的状态码为500,那么抛出错误
})

app.listen(3000, () => console.log('http://localhost:3000'))

路由模块化对于非常多且复杂的业务逻辑时处理起来是非常简洁的。
接口测试:

图1.png
图2.png
图3png

相关文章

  • Express子应用程序以及创建模块路由

    子应用程序与主应用程序: express模块每一次执行都会创建一个应用,而每一个子应用都会通过use的方法挂载到主...

  • Express路由

    Express路由 一、Express路由简介 路由表示应用程序端点 (URI) 的定义以及响应客户端请求的方式。...

  • node学习4

    Nodejs 路由模块封装、封装仿照 express 的路由 Nodejs 路由模块封装 封装仿照 express...

  • Express系列(二)

    路由: 一、什么是express的路由? 路由表示应用程序端点 (URI) 的定义以及响应客户端请求的方式。它包含...

  • Express全系列教程之(二):Express的路由以及动态路

    一、Express路由简介 路由表示应用程序端点 (URI) 的定义以及响应客户端请求的方式。它包含一个请求方时(...

  • 第02讲 koa2路由

    注意 与express不同 - 要单独安装路由模块

  • 前端面试2021-009

    1、如何创建并启动一个Express服务应用 2、什么是路由?Express中是如何管理路由的? 路由是WEB服务...

  • Vue路由嵌套与路由模块化

    路由嵌套 1、引入创建好的子组件 2、配置路由。注意,children中配置的子模块路由,path值前不带斜杠 /...

  • express()

    创建一个express应用,express()是一个express模块导出的入口函数 一般创建为 var expr...

  • Express 学习笔记

    express 第一个 express 开始 创建 app.js 对所有 (/) URL 或 路由 返回 “Hel...

网友评论

      本文标题:Express子应用程序以及创建模块路由

      本文链接:https://www.haomeiwen.com/subject/vufyjrtx.html