当前位置:首页 > 日记 > 正文

该连接Nodejs学习笔记中间件模块(2)

该连接Nodejs学习笔记中间件模块(2)
首先,开放分析

大家好,今天的文章主要是关于连接中间件和相关中间件的分析。

介绍了使用方法和使用方法,这也是我的兴趣所在,以便读者对它有更深的了解。例如,如果分析阶段有什么问题,请赐教。

好 uff01the旧规则让我们去研究的课题。先看一个例子,结合分析的介绍,如下:

复制代码代码如下所示:

var =要求();

VaR的应用= connect.createserver();

app.use(connect.static(__dirname + /公共),{

MaxAge:0

});

app.use(功能(REQ,RES,下){

res.end(你好世界!;

})

听(8888);

U3000

二、逐行分析:

(1),在第一行,连接介绍了模块和HTTP | HTTPS服务器通过连接到HTTP服务器提供的所有功能。

连接中间件允许您以多种方式创建服务器。

复制代码代码如下所示:

VaR服务器= connect.createserver(

Connect.logger()

connect.static(__dirname + /公众)

(1);

var =连接();

app.use(功能(REQ,RES){

res.end(你好,笪雄俊!;

听(8888)};2
那么它是如何做到的,看看源代码:

复制代码代码如下所示:

module.exports createserver出口= =;

exports.createserver = createserver;
安装createserver对全球的出口,并扩大createserver属性安装一遍,为了与本土写作兼容。

这是我们在普通发展中可以借鉴的理念。

(2),看第二线连接。createserver

复制代码代码如下所示:

VaR HttpServer =需要('。 / HTTP服务器),

httpsserver =需要('。 / HTTPS服务器);

功能createserver(){

如果('object= =类型参数{ 0 }){

返回新的httpsserver(参数{ 0 },array.prototype.slice.call(参数1));

{人}

返回新的HTTP服务器(array.prototype.slice.call(参数));

}

};
httpsserver 和HTTP服务器基本上是相同的,就像httpsserver封装的HTTPS。在createserver 案例

(3),继续看第三线app.use()

复制代码代码如下所示:

VaR服务器=出口。服务器功能的HTTP服务器(中间件){

this.stack = { };

middleware.foreach(功能(Fn){)

this.use(FN);

},这个);

http.server.call(这、这。处理);

};
*从服务器原型继承。

* /

服务器。__proto__ = http.server.prototype原型;
连接是从HTTP服务器继承的原型。

通过connect.use(路线、处理)添加中间件的每一条路,这些中间件柄将与路线在堆栈

遍历堆,找到对应于路由的句柄并执行句柄。如果句柄最终调用下一个(),它将继续搜索并执行下一个匹配句柄。

通过封装句柄

(4)最后,请看听(8888)。它是做什么的

简单地说,通过继承底层服务器对象,监听的功能将用于监听特定端口。

服务器。__proto__ = http.server.prototype原型。

以下是所有connect.js源代码。为了节省空间,所有的注释都被删除了,如下所示:
补充:

复制代码代码如下所示:

Fs.readdirSync(__dirname + /中间件)。ForEach(功能(文件名){)

如果((测试文件名)){

变量名= filename.substr(0,filename.lastindexof(' '));

出口。中间件。__definegetter__(名称、函数(){(){

返回所需(/+名称);

});

}

});
然后将中间件对象导出的方法定义为中间件对象,该中间件直接在中间件文件夹中加载js文件模块。

使用:exports.utils.merge(出口、出口。中间件)这句话的中间件方法直接出口。

三,总结:

(1)理解源代码的设计意图有助于最大限度地提高应用程序的收益。

(2)在查看源代码时,了解过程,然后修改语法细节。

(3)巧妙地实现源代码,而不是为设计而设计的过渡设计。

(4)明天继续分析相关中间件,不断更新。

相关文章

用人工智能制作五个优美叠加环的方

用人工智能制作五个优美叠加环的方

叠加,方法,智能,用人,优美,本教程是向您介绍如何通过使用人工智能制作叠加的圆形。介绍这种方法有五种方法。对学习ai的朋友很有帮助。推荐朋友,喜欢学习的朋友。 本教程是向AI介绍一个美丽的叠加环的五种方法。本教程非常实用,对学习ai的朋…

超球面PS画家的平滑纹理

超球面PS画家的平滑纹理

纹理,平滑,球面,画家,电脑软件,本教程是用PS超光滑球体绘制鼠标的超级纹理,做了很好的小球教程,主要是介绍这种明暗关系的刻画,三维物体纹理的内容。我希望能帮助你。 本教程教学习者使用PS鼠标绘制PS鼠标绘制超质感球体,主要介绍了明暗关系的…

PS结合ai快速绘制金融行业标识

PS结合ai快速绘制金融行业标识

行业,标识,绘制,快速,电脑软件,本文将向您介绍利用PS和人工智能快速绘制金融业的方法。这个过程相对简单。新朋友也可以来学它。我希望这篇文章能帮助ps学习者。 本文将向您介绍利用PS和人工智能快速绘制金融业的方法。这个过程相对简单。…

印刷的SQL语句通过CakePHP的方法

印刷的SQL语句通过CakePHP的方法

方法,语句,电脑软件,SQL,CakePHP,本文阐述了印刷的SQL语句通过CakePHP的方法。分享给你供你参考。具体实现的方法如下: 将以下语句复制到代码中,并在此之前打印所有SQL语句: 来源:sourcelist美元=连接管理器:(); 如果(!isset($日志)): $ =数组(); foreach(合…

详细的介绍了console.group()函数在J

详细的介绍了console.group()函数在J

函数,详细,电脑软件,group,console,日志输出不分层使用时console.log()或其他日志级别的控制台输出功能。这种限制会带来点小麻烦当日志输出更程序。为了解决这个问题,你可以使用console.group(),把下面的代码为例: 复制代码代码如下所示: 功能do…

PS使用滤镜为风景画创造真实的表面

PS使用滤镜为风景画创造真实的表面

滤镜,反射,创造,风景画,表面,本教程介绍了制作反射的方法,非常实用。这个过程:原始图像高度加倍,原始图像的复制,然后翻转垂直对接,模糊和涂抹工具来制作初步的水等等。 本教程介绍了制作反射的方法,非常实用,其过程是:将原图像高度加倍,复制原图像…

PHP使用cookie保存用户登录用户名

PHP使用cookie保存用户登录用户名

用户名,用户登录,实例,电脑软件,PHP,本文演示了PHP使用cookie保存用户登录的用户名的方法,供您参考,具体实现方法如下: 用户登录文件:login.php 复制代码代码如下所示: 用户登录 功能getcookieusername(){ 如果(空(美元_cookie { 'username '…

在jQuery的差异分析(文件)。Ready在w

在jQuery的差异分析(文件)。Ready在w

文件,差异,电脑软件,jQuery,onload,$(document)的作用。Ready()在jQuery是类似于在window.onload方法在传统的Javascript,但它仍然是不同于在window.onload方法。 1。执行时间 在window.onload必须等到所有页面元素在页面加载的加载。 $(文档)Ready()在…

教你用firewords做出漂亮的旗帜

教你用firewords做出漂亮的旗帜

教你用,漂亮,电脑软件,firewords,本教程向您介绍firewords的使用使旗帜,方法很简单,横幅的制作很漂亮,向前,我希望帮助人们 本教程向您介绍firewords的使用使旗帜,方法很简单,横幅的制作很漂亮,期待你,希望对你有帮助! 本教程结束,以上是做一个漂亮…

对http.createclient方法在Node.js

对http.createclient方法在Node.js

使用说明,方法,电脑软件,http,createclient,方法显示: 此功能已过时,新版本使用http.request({ } { })来取代它。 构建了一个新的HTTP客户机。 Grammar: 复制代码代码如下所示: http.createclient({口},{主持人}) 由于此方法属于HTTP模块,所以HT…

自来水事件阻止泡沫zepto.js实施

自来水事件阻止泡沫zepto.js实施

事件,泡沫,自来水,电脑软件,js,本文阐述了在zepto.js点击事件,防止泡沫的实施。分享给你供你参考。以下是如下: 最近在一个网站的移动版本,原本想使用jQuery移动,但是文件太大,所以使用zepto.js 由于使用的单击事件在移动网页的延迟,在zepto.js…