自定义中间件极其封装
第一步创建服务器三部曲
//引入express模块
const express = require('express'); //引入express模块
const app = express() //创建服务器
app.listen(80, () => {
console.log('run at http://127.0.0.1'); //启动服务器
})
第二步 创建中间件模块 (中间件实现的作用,根据需求自己在函数中实现,本题以将发送给服务器的信息传回客户端为主)
//1. 引入querystring模块,使用其内置方法
const qs = require('querystring')
//2. 声明一个变量来接收中间件
const bodyParser = ((req, res, next) => {
//下面用来定义中间的业务
let str = '';
req.on('data', (chunk) => {
str += chunk;
})
req.on('end', () => {
const body = qs.parse(str) // qs.parse(str)这个模块可以将传入的字符串解析成对象形式
req.body = body
next()
})
})
//3. 将这个中间件变量挂载出去
module.exports = bodyParser
- 在服务器文件中接收这个模块()
//引入express模块
const express = require('express'); //引入express模块
const app = express() //创建服务器
//4:接收中间件模块
//4.1导入封装的中间件模块
const customBodyParser = require('./03custom-body-parser')
//4.2将自定义的中间件函数,注册为全局可用的中间件
app.use(customBodyParser)
//5 用路由来发送信息
app.post('/user', (req, res) => {
// console.log(str);
res.send(req.body)
})
app.listen(80, () => {
console.log('run at http://127.0.0.1'); //启动服务器
})
结果如下:
将发送给服务器的信息反馈给客户端