• 技术文章 >web前端 >前端问答

    node的中间件是什么

    WBOYWBOY2022-04-15 17:17:17原创1915

    在node中,中间件是一种功能的封装方式,主要是指封装所有http请求细节处理的方法;http的请求通常包含了许多的内容,因此可以利用中间件来简化及隔离这些基础设施与业务逻辑之间的细节。

    大前端零基础入门到就业:进入学习

    本教程操作环境:windows10系统、nodejs 12.19.0版本、Dell G3电脑。

    node的中间件是什么

    nodejs中间件从概念上讲是一种功能的封装方式,主要是指封装所有Http请求细节处理的方法。

    在nodeJS中,中间件主要是指封装所有Http请求细节处理的方法,一次Http请求通常包含很多工作:如记录日志,IP过滤,查询字符串、请求体解析,cookie处理、权限验证、参数验证、异常处理等、但对web应用而言,并不希望接触到这么多细节性的处理,因此使用中间件来简化及隔离这些基础设施与业务逻辑之间的细节,让开发者更关注在业务的开发上,他的工作模式如下:

    08.png

    中间件机制核心实现

    中间件是从Http请求发起到响应结束过程中的处理方法,通常需要对请求和响应进行处理,因此一个基本的中间件的形式如下:

    const middleware = (req, res, next) => {
      // TODO
      next()
    }
     模拟最基本的中间件
    // 定义简单的三个中间件
          const httpMeth1 = (req, res, next) => {
            console.log('我是请求1')
            next()
          }
          const httpMeth2 = (req, res, next) => {
            console.log('我是请求2')
            next()
          }
          const httpMeth3 = (req, res, next) => {
            console.log('我是请求3')
            next()
          }
          // 中间件数组
          const allHttpMeth = [httpMeth1, httpMeth2, httpMeth3]
          function run (req, res) {
            const next = () => {
              // 获取中间件
              const allHttpMethitem = allHttpMeth.shift()
              if (allHttpMethitem) {
                // 执行
                allHttpMethitem(req, res, next)
              }
            }
            next()
          }
          run() // 模拟请求发起

    如果中间件中有异步操作,需要在异步操作的流程结束后再调用next()方法,否则中间件不能按顺序执行

    推荐学习:《nodejs视频教程

    以上就是node的中间件是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:node
    上一篇:jquery中visible的用法是什么 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 浅析node esmodule模式下怎么调用commonjs模块• 浅析Node中Express的错误处理中间件• 了解Node.js Nestjs框架的模块机制,聊聊实现原理• 深入浅析Nodejs中的net模块• 深入聊聊Node.js中的模块化
    1/1

    PHP中文网