范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

十万字前端面试问题总结第4部分

  2023.03.09 - 2023.03.15 更新收集面试问题(45道题)【第4部分】
  获取更多面试问题可以访问
  github 地址: https://github.com/pro-collection/interview-question/issues
  gitee 地址: https://gitee.com/yanleweb/interview-question/issues
  目录: 中级开发者相关问题【共计 2 道题】 73.express middleware 工作原理是什么??【Nodejs】 75.[vue]: 手写 vue 双向绑定?【web框架】 高级开发者相关问题【共计 3 道题】 69.前端如何实现即时通讯?【JavaScript】 70.前端做错误监控?【JavaScript】 72.TCP 和 UDP的区别?【网络】 中级开发者相关问题【共计 2 道题】73.express middleware 工作原理是什么??【Nodejs】express middleware 工作原理是什么?
  Express middleware 的工作原理是通过拦截 HTTP 请求,对请求进行处理,然后将请求传递给下一个中间件或应用程序的路由处理。在 Express 中,中间件可以是一个或多个函数,每个函数都可以对请求进行操作或响应,从而实现对请求的处理和过滤。
  当 Express 应用程序接收到一个 HTTP 请求时,请求将首先被传递给第一个注册的中间件函数。这个中间件函数可以对请求进行操作,例如修改请求的头信息、检查请求是否包含有效的身份验证令牌等等。当这个中间件函数完成操作后,它可以选择将请求传递给下一个中间件函数,或者直接将响应返回给客户端。
  如果中间件函数选择将请求传递给下一个中间件函数,它可以调用 next() 函数来将控制权传递给下一个中间件。这个过程可以一直持续到所有中间件函数都被执行完毕,最后将请求传递给应用程序的路由处理函数。
  通过使用中间件,开发人员可以将应用程序的功能模块化,从而实现更好的代码组织和可维护性。同时,中间件还可以实现各种功能,例如身份验证、日志记录、错误处理等等,从而为应用程序提供更丰富的功能和更好的用户体验。 它的设计模式是啥?写一个简单的示例呢
  Express middleware 的设计模式是基于责任链模式。在责任链模式中,每个对象都有机会处理请求,并将其传递给下一个对象,直到请求被完全处理为止。在 Express 中,每个中间件函数都有机会对请求进行处理,并可以选择将请求传递给下一个中间件函数或应用程序的路由处理函数。
  以下是一个简单的示例,演示如何使用 Express middleware 实现身份验证: const express = require("express"); const app = express();  // 定义一个中间件函数,用于验证用户身份 function authenticate(req, res, next) {   const token = req.headers.authorization;   if (token === "secret-token") {     // 如果令牌有效,则将控制权传递给下一个中间件函数     next();   } else {     // 否则,返回 401 错误     res.status(401).send("Unauthorized");   } }  // 注册中间件函数,用于验证用户身份 app.use(authenticate);  // 定义一个路由处理函数,用于返回受保护的资源 app.get("/protected", (req, res) => {   res.send("Protected resource"); });  // 启动应用程序 app.listen(3000, () => {   console.log("Server is running on port 3000"); });
  在上面的示例中,我们定义了一个名为 authenticate 的中间件函数,它用于验证用户的身份。在这个函数中,我们检查请求头中是否包含有效的身份验证令牌。如果令牌有效,则将控制权传递给下一个中间件函数或路由处理函数。否则,返回 401 错误。
  然后,我们通过调用 app.use() 方法来注册这个中间件函数,以便在每个请求中都进行身份验证。最后,我们定义一个名为 /protected 的路由处理函数,它表示受保护的资源。只有在身份验证通过后,才能访问这个路由处理函数。
  通过这个简单的示例,我们可以看到如何使用 Express middleware 实现基本的身份验证功能。中间件函数充当责任链中的一个环节,通过对请求进行处理和过滤,为应用程序提供更好的安全性和用户体验。 75.[vue]: 手写 vue 双向绑定?【web框架】双向绑定核心知识点
  如果一个对象中有属性有方法,那么调用属性可以直接. 就可以调用,但是如果是调用方法的时候,是通过入参来决定key的值来调用的话,请用[]来表示:                 MVVM 双项绑定                         

Hi,MVVM

{{name}} "s age is {{age}}

高级开发者相关问题【共计 3 道题】69.前端如何实现即时通讯?【JavaScript】前端如何实现即时通讯短轮询   短轮询的原理很简单,每隔一段时间客户端就发出一个请求,去获取服务器最新的数据,一定程度上模拟实现了即时通讯。 优点:兼容性强,实现非常简单 缺点:延迟性高,非常消耗请求资源,影响性能 comet   comet有两种主要实现手段, 一种是基于 AJAX 的长轮询(long-polling)方式, 另一种是基于 Iframe 及 htmlfile 的流(streaming)方式,通常被叫做长连接。   具体两种手段的操作方法请移步 Comet技术详解:基于HTTP长连接的Web端实时通信技术 长轮询优缺点: 优点:兼容性好,资源浪费较小 缺点:服务器hold连接会消耗资源,返回数据顺序无保证,难于管理维护 长连接优缺点: 优点:兼容性好,消息即时到达,不发无用请求 缺点:服务器维护长连接消耗资源 SSE   SSE(Server-Sent Event,服务端推送事件)是一种允许服务端向客户端推送新数据的HTML5技术。 优点:基于HTTP而生,因此不需要太多改造就能使用,使用方便,而websocket非常复杂,必须借助成熟的库或框架 缺点:基于文本传输效率没有websocket高,不是严格的双向通信,客户端向服务端发送请求无法复用之前的连接,需要重新发出独立的请求 Websocket   Websocket是一个全新的、独立的协议,基于TCP协议,与http协议兼容、却不会融入http协议,仅仅作为html5的一部分,其作用就是在服务器和客户端之间建立实时的双向通信。 优点:真正意义上的实时双向通信,性能好,低延迟 缺点:独立与http的协议,因此需要额外的项目改造,使用复杂度高,必须引入成熟的库,无法兼容低版本浏览器 Web Worker   Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行 Service workers   Service workers 本质上充当Web应用程序与浏览器之间的代理服务器,也可以在网络可用时作为浏览器和网络间的代理,创建有效的离线体验。 70.前端做错误监控?【JavaScript】错误监控   错误分类 :即时运行错误(代码错误)、资源加载错误 错误的捕获方式:   即时运行错误: try...catch window.onerror   资源加载错误:   1)、object.onerror   2)、performance.getEntries()   3)、Error事件捕获   performance.getEntries()这个是可以获取到所有的家已经加载的资源   Error事件捕获使用方式: window.addEventListener("error",function(e){ console.log("捕获",e) },true)   跨域是可以捕获的:   1)、在script标签添加crossorigin属性   2)、在js响应头添加Access-Control-Allow-Origin:*;   上报错误:ajax通信方式上报、通过Image对象上报,非常简单   (new Image()).src="http://baidu.com/test/sdflijsd?=sdlfkj"; 72.TCP 和 UDP的区别?【网络】TCP和UDP的区别TCP、UDP和HTTP关系   1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。   在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。   在传输层中有TCP协议与UDP协议。   在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。   因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。   TCP 是基于 TCP 协议实现的网络文本协议,属于传输层。   UDP 是和TCP 对等的,属于传输层,UDP 和 TCP 有重要的区别。   2、HTTP协议是建立在请求/响应模型上的。   首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。 服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。   HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。   另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。 每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性, 因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。   三次握手的过程:   第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。   第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;ACK:确认字符(Acknowledgement)   第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。   3、结论:虽然HTTP本身是一个协议,但其最终还是基于TCP的。   Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。   HTTPS:(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。   优点: 协议较成熟,应用广泛、基于TCP/IP,拥有TCP优点、研发成本很低,开发快速、开源软件较多 ,nginx,apache,tomact等 缺点: 无状态、无连接 、只有PULL模式,不支持PUSH、数据报文较大 特性: 基于TCP/IP应用层协议、无状态,无连接 、支持C/S模式、适用于文本传输 TCP   TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次"对话"才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。 我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:"我想给你发数据,可以吗?", 这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:"可以,你什么时候发?",这是第二次对话; 主机A再发出一个数据包确认主机B的要求同步:"我现在就发,你接着吧!",这是第三次对话。 三次"对话"的目的是使数据包的发送和接收同步,经过三次"对话"之后,主机A才向主机B正式发送数据。   TCP:(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次"对话"才能建立起来,其中的过程非常复杂。 建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。   优点: 可靠性 、全双工协议、开源支持多、应用较广泛、面向连接 、研发成本低、报文内容不限制(IP层自动分包,重传,不大于1452bytes)   缺点:操作系统:较耗内存,支持连接数有限、设计:协议较复杂,自定义应用层协议、网络:网络差情况下延迟较高、传输:效率低于UDP协议特性: 面向连接、可靠性、全双工协议、基于IP层、OSI参考模型位于传输层、适用于二进制传输   三次握手 与 四次挥手 当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,肯定是要断开TCP连接的啊。那对于TCP的断开连接,这里就有了神秘的"四次挥手"。   1.第一次挥手:主机1(可以使客户端,也可以是服务器端),设置Sequence Number和Acknowledgment Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;   2.第二次挥手:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我也没有数据要发送了,可以进行关闭连接了;   3.第三次挥手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入CLOSE_WAIT状态;   4.第四次挥手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。   至此,TCP的四次挥手就这么愉快的完成了。 UDP   UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。 比如,我们经常使用"ping"命令来测试两台主机之间TCP/IP通信是否正常,其实"ping"命令的原理就是向对方主机发送UDP数据包, 然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。 例如,在默认状态下,一次"ping"操作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包, 收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议, 没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。 QQ就使用UDP发消息,因此有时会出现收不到消息的情况。   UDP:UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据, 并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制; 在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。   优点:操作系统:并发高,内存消耗较低、传输:效率高,网络延迟低、传输模型简单,研发成本低   缺点:协议不可靠、单向协议、开源支持少、报文内容有限,不能大于1464bytes、设计:协议设计较复杂、网络:网络差,而且丢数据报文   特性:无连接,不可靠,基于IP协议层,OSI参考模型位于传输层,最大努力交付,适用于二进制传输 对比   场景   TCP   UDP   是否连接   面向连接   面向非连接   传输可靠性   可靠   不可靠   应用场合   传输大量数据   少量数据   速度   慢   快

厚睦莱分享对眼睛好的食物每天科普一个有用的知识,身处短视频火热的时代,人人都刷起了它,戴眼镜的人越来越多,度数越来越深,心情有点EMO了,让我们从日常做起,可以多摄入对眼睛好的食物,请拿起小本子记起来哦!威少3换2交易离队,单打王有望加盟湖人,新首发曝光NBA名记BillSimmons在自己的播客节目中,建议洛杉矶湖人与公牛队达成一笔3换2的交易送走威少。具体的交易方案为湖人队送出威少2027和2029年的两个首轮选秀权,从公牛队乌拉圭主帅出局因对阵葡萄牙时被判点,那不是一个点球直播吧12月3日讯世界杯小组赛H组第3轮,乌拉圭20战胜加纳,但因进球数的劣势排名小组第三,无缘出线。赛后,乌拉圭主帅迭戈阿隆索接受了采访。谈到小组出局,迭戈阿隆索说道我们的出局是NBA官方mvp排行榜更新塔图姆超越东契奇升至第一今日NBA官方实时mvp排行榜出炉,联盟第一凯尔特人的两位核心塔图姆升至第一杰伦布朗首次进入前十,斯蒂芬库里第六。塔图姆凯尔特人31。6分7。8板4。5助凯尔特人如今五连胜,18胜C罗助攻金英权全场获评5。6分,韩国绝处逢生逆转晋级世界杯看球笔记第13夜加纳0比2乌拉圭韩国2比1葡萄牙孙兴慜(右)在比赛后庆祝。新华社发绝境逢生,韩国队成亚洲第三支晋级淘汰赛的队伍!北京时间12月3日凌晨,在卡塔尔世界杯H组最后别了,德国队别了,你们的价值观2022世界杯德国无缘16强继2018俄罗斯世界杯之后,德国队又一次倒在小组赛。做为多年德国队的球迷,欣赏的是德国人的团队协作永不言弃钢铁意志,但是这届德国队让人失望。在还没来卡塔猛料!35岁詹姆斯终有绯闻,被曝出轨23岁模特北京时间5月3日,詹姆斯一直保持良好的个人形象,他和妻子萨瓦娜很早就认识,在萨瓦娜仅16岁的时候,两人便认识。而两人如今已经有3个小孩,夫妻两人至今没有传出过不和的消息,感情非常好解析葡萄牙12韩国C罗受限难进球,奇兵黄喜灿登场杀死比赛这种情况是我只能在电视上看到的剧情,而现在我自己就是当事人之一!韩国队21逆转葡萄牙队后,门将金承奎在接受采访时依然难掩激动。此役葡萄牙队开场6分钟便打破僵局,在场面上也始终压制韩卡塔尔世界杯裁判快成摆设但中国裁判仍无法成为主裁本届世界杯开始至今,小组赛全部结束了,全世界球迷发现,除了参赛各国球队的精彩比赛外,足球比赛中的争议问题一直存在,例如日本队的那粒关键球出不出界?是否十二码精确度到几厘米身位的越位三消息!广东秘密签大外援,周琦家中被盗,CBA第二阶段比赛延期广东队秘密签大外援上赛季广东队以第五名的成绩进入季后赛,先将天津斩落马下,八强遇到浙江20横扫,在分区决赛惨遭辽宁30被横扫。自此广东王朝落下帷幕,且广东队出现青黄不接的局面。休赛16强出炉!两大历史纪录诞生,最强淘汰赛来袭,八强呼之欲出卡塔尔世界杯16强全部出炉,所有世界排名靠前球队,除了无缘小组出线的德国比利时和掉落小组第二的西班牙,所有强队都以小组头名的傲人战绩出线,最强淘汰赛即将来袭!卡塔尔世界杯创造两大历
书评是一种理论语言的革命,文艺报凤凰书评专刊两周年座谈会举行视频加载中现代快报讯3月17日上午,文艺报凤凰书评专刊两周年座谈会暨多棱镜下的文学之光新书首发式在金陵饭店举行。中国作协副主席书记处书记李敬泽,凤凰出版传媒集团党委书记董事长孙真福3月17日国内黄金期货涨0。21来源中国经济网中国经济网北京3月17日讯今日,上海期货交易所日间盘黄金期货合约震荡下行,成交活跃,持仓增加。国内黄金期货主力2306合约开盘报432。58元,截至日间收盘,收报43市场景气度下降,东方财富2022年营收净利双降,拟10转2派0。7元东方财富3月17日晚间披露年报,受资本市场景气度下降等因素影响,2022年公司实现营业总收入124。86亿元,同比下降4。65归母净利润85。09亿元,同比下降0。51基本每股收益2023河南公益体彩快乐操场活动开启大河报豫视频记者杨惠明通讯员张洁3月16日上午,2023公益体彩快乐操场(河南省)启动仪式在河南省体育彩票管理中心举行,报名通道也正式开启。今年,河南体彩将继续乘着春风温暖出发,为娱乐圈最大的笑话,恐怕就是陈道明的艺德不行文老余论史编辑老余论史为什么越来越多的人都开始听老歌刷老剧了?那是因为像李宗盛陈道明这样的老前辈隐退江湖,才造成了江湖上只流传哥的传说的悲剧!提起陈道明,你会想到什么?叔圈天花板还国际最新研究卫星数据显示2002年以来全球极端水事件有所增加来源中国新闻网施普林格自然旗下专业学术期刊自然水最新发表一篇气候研究论文称,基于卫星数据研究显示,全球水循环极端事件的强度(一个结合旱灾和洪灾程度持续时间严重性的综合指标)在200竞业限制,最长能限几年?来源台海网台海网3月17日讯(海峡导报记者陈捷曾艺轩通讯员司小宣文杨希漫画)竞业限制,最长能限几年?员工自愿放弃缴交社会保险,企业仍要担责?劳动者违反服务期约定,违约金怎么算?近期退伍老兵一人坚守海岛邮局见证社会巨变谢坚十三届十四届全国人大代表,中国邮政珠海分公司外伶仃邮政营业所主管从往昔荒凉的海岛到如今风景如画的旅游胜地,外伶仃岛上一直有退役军人谢坚奔波的身影。再次当选为全国人大代表的他,今蓝色光标微软对公司营销方面的ISV的申请尚在审批阶段公司目前尚未正式接入GPT4蓝色光标微软对公司营销方面的ISV的申请尚在审批阶段公司目前尚未正式接入GPT4财联社3月17日电,蓝色光标发布股票异动公告,公司与Microsoft广告战略合作,并签约成为其中国中国女排更换排协掌门人,谁能成为新任掌门人?三个最可能的人选大家好,我是詹妹,我们一起来关注中国女排,目前球队正在北仑进行集训,中国女排在2023年还是有非常重要的任务,在家门口的亚运会,还有亚洲杯,包括巴黎奥运会的资格赛,对于蔡斌来说挑战圣母哈维穆德高冷放榜,东北撒出第一波Offer,UVA录取数据公布随着数所美国大学的录取放榜,RD放榜季正式拉开了帷幕,近两日圣母大学和哈维穆德学院高冷来袭,东北大学撒出第一波Offer,UVA也公布了录取数据。具体情况如何?快接下去看看吧!bt