Express请求处理管线 随笔

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Express请求处理管线 随笔相关的知识,希望对你有一定的参考价值。

const   exp = require(express),
        app = exp()

function utf8(req, res, next){
    // res.set()设置响应头,
    // 还可以写成res.set({})批量设置响应头
    // 在Content-Type响应头中设置编码可以解决乱码问题
    res.set(Content-Type, text/html; charset=utf-8)
    
    console.log(设置字符编码)
    
    // 将请求交给下一个函数处理
    next()
}

function first(req, res, next){
    console.log(我是第一个处理请求的函数)
    next()
}

function second(req, res, next){
    console.log(我是第2个处理请求的函数)
    next()
}

function third(req, res, next){
    console.log(我是第3个处理请求的函数)
    next()
}

app.get(/, third, first, second, (req, res) => {
    res.end(我是最后一个处理请求函数)
})


// 中间部分还可以写成数组
// app.get(‘/‘, [utf8, first, second, third], (req, res) => {
//     res.end(‘我是最后一个处理请求函数‘)
// })

app.get(/hi/:age, utf8, first, second, third, (req, res) => {
    var name = req.query.name
    var age = req.params.age
    
    // 获取客户端数据:
    // 1、获取url中的querystring(?后面的name=value,通过GET方法发送)
    //     req.query.name
    // 2、获取请求体中的数据(通过POST方法发送,有多种编码方式)
    //     req.body.name
    //     如果是 urlencoded 编码需要使用 body-parser 模块
    //     如果是 multipart/form-data 需要使用 multer 模块
    // 3、获取cookie中的数据
    //     req.cookies.name
    //     需要使用 cookie-parser 模块
    // 4、获取请求头中的数据
    //     req.get(‘name‘)
    // 5、获取url路径Path中的数据
    //     req.params.age
    //     需要设置请求地址模式   ‘/hi/:age‘
    
    // 将参数放入Path相对于将参数放入QueryString
    // 更加容易被人和搜索引擎识别
    // 因此被称为友好URL,friendly url   
    res.end(`你好${name}, ${age},很高兴认识你`)
})

app.listen(3000, () => console.log(正在运行...))

 


[email protected] MINGW64 ~/Desktop/Express请求处理管线和友好URL
$ node server
正在运行...
我是第3个处理请求的函数
我是第一个处理请求的函数
我是第2个处理请求的函数

 

以上是关于Express请求处理管线 随笔的主要内容,如果未能解决你的问题,请参考以下文章

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

OpenGL学习随笔-- OpenGL ES 2.0渲染管线

随笔express中间件系统的基本实现

POST 请求不会在 express 中得到处理

✠OpenGL-2-图像管线

✠OpenGL-2-图像管线