• 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('正在运行...'))


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

  • 相关阅读:
    51Nod 1006 最长公共子序列Lcs
    输入和输出
    51Nod 1092 回文字符串
    51Nod 1050 循环数组最大子段和
    项目初始
    一元多项式求导 (25)
    说反话 (20)
    数组元素循环右移问题 (20)
    素数对猜想 (20)
    换个格式输出整数 (15)
  • 原文地址:https://www.cnblogs.com/huangjinliang/p/5835486.html
Copyright © 2020-2023  润新知