美文网首页
简单实现 express(一)

简单实现 express(一)

作者: _1633_ | 来源:发表于2020-04-08 13:47 被阅读0次

Express 的简单实现

首先 我们看看 express 是如何使用的

express 的基本使用

expres()  返回了一个函数,上面具有 get  和 listen 方法。

步骤1

  listen 是原生的 http.createServer 返回的方法

原生 步骤2

接下来处理 get 请求,这里先介绍一个概念:中间件

  中间件就是处理 HTTP 请求的 函数,用来完成各种特定的任务,比如 检查用户是否登录、检查用户是否有权限访问等, 它的特点是: 

        一个中间件处理完请求 和 响应可以把相应数据在传递给下一个中间件;

        回调函数的 next 参数,表示接受其他中间件的调用,函数体中的 next() 表示将请求数据继续传递;

        可以根据路径来区分返回执行不同的中间件。

        中间件的路径只要匹配前缀就可以了, 比如 /user, 可以匹配 /user/*

路由get、post这些东西,就是中间件,中间件讲究顺序,匹配上第一个之后,就不会往后匹配了。next函数才能够继续往后匹配。

        app.use也是一个中间件,与get,post不同的是,它的网址不是精确匹配的

当你不写路径的时候,实际上就相当于"/",就是所有网址

    只能匹配一个,要写next参数,才会往下匹配

同理, 我们可以处理 post,use 等等 各种请求,这里还没有涉及中间件的执行 和 多个 请求的处理。

1 2 3 4

以上简单实现了一个 express,很多方法 和 逻辑 都没处理,粗略的了解下 express  是如何 处理 中间件的。

需要注意的是: express 的中间件机制 和 koa 的不同, koa 采用的是洋葱圈模型 ,而 express 中间件是 串行执行的(后面会写一篇关于 express 中间件的)。

相关文章

网友评论

      本文标题:简单实现 express(一)

      本文链接:https://www.haomeiwen.com/subject/qpixphtx.html