zoukankan      html  css  js  c++  java
  • 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个处理请求的函数

  • 相关阅读:
    黄聪:自己写的C#对Access操作的数据回滚程序
    黄聪:c# 操作配置文件Properties.Settings
    黄聪:C#类似MSN的右下角弹出窗体
    黄聪:C#尽量使用接口来编程
    黄聪:C#中PictureBox异步加载图片
    黄聪:C# 窗体边框阴影效果
    黄聪:C#安装程序中打包MSDE的八个步骤
    黄聪:c#水晶报表的进一步功能和使用
    黄聪:C# 窗体拖拽功能
    黄聪:C# 日期格式
  • 原文地址:https://www.cnblogs.com/huangjinliang/p/5835486.html
Copyright © 2011-2022 走看看