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

十万字前端面试问题总结第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   是否连接   面向连接   面向非连接   传输可靠性   可靠   不可靠   应用场合   传输大量数据   少量数据   速度   慢   快

入围十大国际电影节!这个诞生在嘉定的纯国产定格动画你看过吗?很多人可能没听说过定格动画,但说起小时候看过的动画片阿凡提葫芦娃西岳奇童,大家应该并不陌生,这些都是定格动画。近日,来自嘉定的国产原创定格动画无二入围英国伦敦最佳独立电影节美国棕榈入围十大国际电影节!这个诞生在嘉定的纯国产定格动画你看过吗?很多人可能没听说过定格动画,但说起小时候看过的动画片阿凡提葫芦娃西岳奇童,大家应该并不陌生,这些都是定格动画。近日,来自嘉定的国产原创定格动画无二入围英国伦敦最佳独立电影节美国棕榈上海国际赛车场规划有调整!详见规划范围本次涉及调整的街坊位于嘉定区F1赛车场区JDC11501单元,东至外环东路南至内环南路西至外环西路北至外环北路,总用地面积195。35公顷。局部调整内容1。土地使用03伊娃哈伯曼出席电影节闭幕式,身穿白色拖地裙礼服优雅迷人伊娃哈伯曼(EvaHabermann)出席第73届柏林国际电影节闭幕式。近日,伊娃哈伯曼(EvaHabermann)出席第73届柏林国际电影节,与法国戛纳电影节意大利威尼斯电影节并柏林电影节闭幕,华语短片获奖,9岁女孩成最年轻影后文安妮特编辑安妮特第73届柏林国际电影节于2月26日闭幕,获奖名单已经全部出炉。纪录片坚定不移斩获最佳影片金熊奖,这部法国与日本合拍的影片,是继2022年美人与流血事件在威尼斯电影专访杀入柏林电影节!周冬雨黄渤新作凭什么?1905电影网专稿第73届柏林国际电影节正式拉下帷幕,法国纪录电影坚定不移拿下最高奖项金熊奖,影片记录了一家照顾患有精神障碍的成年人的日托中心,里面病人和艺术人员的故事。法国名导菲齐鲁红星丨安丘党建引领聚智赋能构建基层治理新格局3月16日晚,安丘市大汶河旅游发展中心金融街社区联合资深心理咨询师和专业心理师团队举办第四期橘灯慧至万家公益宣讲暨家庭关爱志愿服务活动,为社区居民在亲子关系婚姻家庭青少年问题学习动好色女贪官张美芳给女儿办澳洲国籍,自己包养15个小白脸花20年改变人生,用24年爬上财政厅,最后却贪污5000万,包养15个小男人,锒铛入狱。这个前半生靠努力逆袭,后半生靠贪污入狱的女人,就是江苏省财政副厅长张美芳。2010年11月年湖南女贪官落马记色诱40多人,被81岁老汉扳倒,因怀孕被判死缓一个毫无背景,连初中都没毕业的女孩,用13年的时间直接胜任副厅级高管的位置,你相信吗?蒋艳萍就做到了,从一个初出茅庐的乡下丫头到手握重权的高官,你是否也想知道她的过往经历?实际上这山东省级巨贪落马生活糜烂包养46名情妇,敛财1200万,被判无期为了您更好的阅读互动体验,为了您及时看到更多内容,点个关注,我们每天为您更新精彩故事分享不一样的故事瞬间!黄胜犯受贿罪,现依法判处无期徒刑,并没收个人全部财产。从法官庄重地敲下法槌盐城ampampquot色虎ampampquot落马日记记录146名情妇交往细节,还有一对母女,获死刑阅读此文前,诚邀您点击一下关注,方便您随时查阅一系列优质文章,同时便于进行讨论与分享,感谢您的支持2000年,某市因诈骗被逮捕的钱某为了能够戴罪立功,向相关部门供出了江苏省建设厅厅
四种网路类型外网穿透力与优化方法1,完全圆锥型NAT(FullConeNAT)。需要运营商提供公网ip。公网ip有公网动态ip和公网静态ip。公网动态ip是可能发生变化的。光猫拨号后会获取一个公网ip。用户和运营突然宣布停止运营!近日快手旗下快看点发布停运公告称由于业务调整将于2023年2月6日关闭服务器全面停止运营届时用户将无法访问为落实用户个人信息的保护,公司届时将彻底删除所有用户的信息和作品等数据(因趣玩实验室如何像数码博主一样打造自己的电竞桌稿源中关村在线我们经常看视频网站上很多数码博主炫酷的桌面,看起来充满了科技氛围,看起来就很我想要,但又不知道该从何下手。其实这些数码博主的桌面也都是用心搭配的,很多东西都需要咱们自一年影视会员费能买台65英寸电视!大屏APP们的吃相太难看电视端会员的套路,该管管了!最近关于电视端各种会员的猫腻和套路引发了网友们的热议,一位网友在网上控诉,自己家电视遭遇了套娃收费看电影,连续包月是20元月看电视剧,连续包月29元月,再见!曾经的经典退出历史舞台作为一代经典的Windows7即将退出历史舞台按计划今天(1月10日)Windows7操作系统将结束ESU(付费外延扩展支持)也就是对于企业用户来说即便是想再掏钱微软也不会再下发安8款小太阳取暖器测试美菱TCL康佳取暖效果较好按对于小太阳取暖器,推荐额定功率不低于800W。近期,浙江省消保委公布了8款小太阳取暖器的比较试验结果。测试结果显示,性能方面,美菱TCL和康佳的辐射热距离即取暖效果较好,美的康佳熊李力一带一路倡议下的第三方市场合作现实与前瞻在宏观的国家和政府层面之下,中微观层面的企业作为合作主体,赋予第三方市场合作鲜明的目的特征领域特征和效应特征。由于第三方市场合作的效果受制于企业合作动机企业所在行业属性企业所在国政品类与个性齐飞,小车与超跑齐赴纯电轻越野是什么新生活方式?小熊猫为什么能上路?又一超跑向纯电进发?一边是自主品牌开创个性品类,新势力蓄势待发一边是豪华品牌大跨步变革,纯电诠释新英式豪华。随着2022全年国内唯一的A爱讲能讲敢讲的马云为什么沉默?头条创作挑战赛时代抛弃一个人,连招呼都不会打一声。近日消息传来,马云悄然离开,不再拥有蚂蚁集团控制权。网上也没有马云关于此事的只言片语。要知道,曾经的马云是一个能讲,爱讲,敢讲的人特斯拉价格大跳水,网友吐槽34万买的ModelY,现在只要26万!特斯拉到底是一家什么样的公司呢?有钱他不赚,非要降价卖!如果大家决定了买特斯拉,那么就要做好买完就降价的准备。最近,特斯拉再次官宣降价。其实特斯拉降价很正常,只是这一次的降价幅度还阿里系,有重大变化!马云可能有好的未来财经新势力新春季绿水青山怡我性,红尘白浪笑他忙。人世间,有时登绝顶,有时落平川,沉沉浮浮。阿里系,有重大变化!马云退了,蚂蚁集团调整投票权结构,恒生电子实控人也变更了,马云不再是实