首页 > 其他分享 >七.express框架进阶 - 中间件的使用

七.express框架进阶 - 中间件的使用

时间:2022-10-11 19:11:14浏览次数:56  
标签:const 进阶 express 中间件 video user router

中间件 : 

   例如,我想给每个请求,都打印一下,请求过来的时间,那么就要给每个请求都加上.这样太麻烦,所以产生了中间件     有 : 路由中间件...等等

  使用中间件 router 发送请求

 

//    app.js

const express = require('express')
const app = express()

// 1中间件 : 可以接受post 为 'content-type': 'application/x-www-form-urlencoded'  的数据  加了req.body才可以接受到
app.use(express.urlencoded())

// 2中间件 : 可以接受post 为 'content-type': 'application/json'  的数据  加了req.body才可以接受到
app.use(express.json())

// 3中间件 : 跨域  需要先安装 : npm i cors
const cors = require('cors')
app.use(cors())

// 4中间件 : 日志  需要先安装 : npm i morgan  dev表示在开发中的
const morgan = require('morgan')
app.use(morgan('dev'))


// 使用中间件的router 第一个参数,就是在前缀加   http://127.0.0.1:3001/api/v1/video/user
const router = require('./router/index')
app.use('/api/v1',router)


app.listen(3001,()=>{
    console.log('127.0.0.1:3001');
})
//     router/index.js  主文件 把所有的路由分模块都放在这里

const express = require('express')
const router = express.Router()

// 引入user模块
const user = require('./user')
router.use('/user',user)

// 引入video模块
const video = require('./video')
router.use('/video',video)

module.exports = router
// router/video

const express = require('express')
const router = express.Router()

// 把根据不同的路由,处理不同的业务逻辑,并把它封装在这里
const {index,user} = require('../controller/videoController')

// 中间件router,也可以发送请求的 ; 可以链式调用
router
.get('/',index)
.get('/user',user)
module.exports = router
// controller/videoController

const index = (req,res)=>{
    console.log(req.method);
    res.send('/video/index')
}

const user = (req,res)=>{
    console.log(req.method);
    res.send('/video/user')
}

module.exports = {
    index,
    user
}
// router/user
const express = require('express')
const router = express.Router()

// 把根据不同的路由,处理不同的业务逻辑,并把它封装在这里
const userController = require('../controller/userController')

// 中间件router,也可以发送请求的 ; 可以链式调用
router
.get('/',userController.index)
.get('/user',userController.user)

module.exports = router
// /controller/userController

const index =(req,res)=>{
    console.log(req.method);
    res.send('./user/index')
}

const user = (req,res)=>{
    console.log(req.method);
    res.send('/user/user')
}

module.exports = {
    index,
    user
}

 

app.js.    [ app.use('/api/v1',router)  ]

    => router.js(接受请求)  

       =>index.js (所有接受请求的都放在index.js)   

            =>引入  video.js(前缀已video开头)

                 =>引入videoController.js (处理不同的接收前缀)

                      =>已user结尾   http://127.0.0.1:3001/api/v1/video/user

                      =>已/结尾       http://127.0.0.1:3001/api/v1/video/          

            =>引入  user.js(前缀已user开头)                 

                  =>引入userController.js (处理不同的接收前缀)

                      =>已user结尾   http://127.0.0.1:3001/api/v1/user/user

                      =>已/结尾       http://127.0.0.1:3001/api/v1/user/ 

 

标签:const,进阶,express,中间件,video,user,router
From: https://www.cnblogs.com/qd-lbxx/p/16780311.html

相关文章

  • 【自然语言处理(NLP)】基于LSTM的命名实体识别(进阶)
    【自然语言处理(NLP)】基于LSTM的命名实体识别(进阶)作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产......
  • 线段树( 进阶 )
    线段树蓝某杯省赛比赛结束后,倒数第二题是线段树,但是我没想到怎么建树。时隔几个月,蓝某杯国赛结束后,这题线段树可以做,但是我没写出来。(这是我一个朋友[doge])简介​ 线......
  • java 中级进阶高级 java 23种设计模式 视频教程 详细介绍+代码详解 +应用场景分析+
    ​​​​java中级进阶高级23种设计模式详细介绍+代码详解2019-04-06日最新更新蒋浩宇技术总监/CTO/高级工程师/技术专家主要讲解关于java、python、c++、前段、html5、jq......
  • 字节跳动开源内部微服务中间件 CloudWeGo
    字节跳动开源内部微服务中间件CloudWeGohttps://mp.weixin.qq.com/s?src=11&timestamp=1665454323&ver=4097&signature=0Ll11XjU2s06cALs4ev9EPPSAUfAtBMpUgxfuw5P0yqfv8......
  • Python:从入门到进阶
    导读本文将推荐一个Github开源项目:python-tutorial。本Python教程包含了一些范例,涵盖了大多数Python日常脚本任务,是入门Python的学习资料,也可以作为工作中编写Python脚本......
  • Java Web中间件
    目录​​中间件​​​​常见的web中间件有哪些​​​​Tomcat​​​​Weblogic​​​​Jboss​​​​Jetty​​​​Webshere​​​​Glasshfish​​中间件我们经常会看到中......
  • 分库分表 Sharding:8. 主流的数据库中间件实现对比
    8.   主流的数据库中间件实现对比8.1   数据库代理与数据源代理典型的数据库中间件设计方案有2种:服务端代理(proxy:代理数据库)、客户端代理(datasource:代理数据......
  • Kubernetes Traefik 路由规则及中间件 Traefik Middlewares 的配置 (k3s)
    系统环境:  Traefik版本:v2.2.0Kubernetes版本:K3s1.23.6一、什么是TraefikTraefik是一款开源的边缘路由器,现在本人主要要作用于kubernetes中对外的网关,即Ing......
  • JAVA 进阶第一阶段 59-69
    10/10号笔记用private在类中定义的成员变量只有在这个类的内部才支持访问和编写public公共的用这个定义的在任何地方都可以访问 比如publiccalssclock 、定义......
  • python重拾第七天-面向对象进阶
    本节内容:面向对象高级语法部分经典类vs新式类静态方法、类方法、属性方法类的特殊方法反射异常处理Socket开发基础作业:开发一个支持多用户在线的FTP程序......