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