首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

手写Koa.js源码

用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器...第二篇文章是看了Express的基本用法,更主要的是看了下他的源码:手写Express.js源码 Express的源码还是比较复杂的,自带了路由处理和静态资源支持等等功能,功能比较全面。...从上面两个例子的代码来看,Koa跟Express有几个明显的区别: ctx替代了req和res 可以使用JS的新API了,比如async和await 手写源码 手写源码前我们看看用到了哪些API,这些就是我们手写的目标...本文的手写源码全部参照官方源码写成,文件名和函数名尽量保持一致,写到具体的方法时我也会贴上官方源码地址。...Express源码可以看我之前这篇文章:手写Express.js源码 Koa的思路看起来更清晰,Koa本身的库只是一个内核,只有中间件功能,来的请求会依次经过每一个中间件,然后再出来返回给请求者,这就是大家经常听说的

1.1K20

js进阶手写常见函数

JavaScript进阶的必要性 无论是学习react还是vue,它们都是js的应用框架。...剥去他们的壳子看到的始终是js,所以作为一个前端大厨必须要熟练掌握好js这个大勺,才能烧出一顿好菜 无论是自我提升还是应付面试以下这些手写功能是每一个前端程序员必须掌握的 1....返回result 结果 return result } func.myApply(newObj,['55','yw']) // xmx 55 yw apply代码执行效果 图片 相关js视频讲解...节流和防抖也是闭包的应用 手写防抖代码参考 /*** * 手写防抖 */ const debounce = (func, delay) => { let timer = null; return...图片 手写节流 /*** * 手写节流 * 这里只需要注意和防抖不同的时 不会清除定时器 */ const throttle = (func, delay) => { let flag = false

36920

手写Express.js源码

本文照例会从Express的基本使用入手,然后自己手写一个Express来替代他,也就是源码解析。...手写源码 手写源码才是本文的重点,前面的不过是铺垫,本文手写的目标就是自己写一个express来替换前面用到的express api,其实就是源码解析。...本文所有手写代码全部参照官方源码写成,方法名和变量名尽量与官方保持一致,大家可以对照着看,写到具体的方法时我也会贴出官方源码的地址。...express.js对应的源码看这里:github.com/expressjs/e… app.listen 上面说了,express.js只是一个空壳,真正的app在application.js里面,所以..._router = new Router(); } } 复制代码 app.listen,app.handle和methods处理方法都在application.js里面,application.js

5.4K30

js手写面试题总结

手写 Promiseconst PENDING = "pending";const RESOLVED = "resolved";const REJECTED = "rejected";function...RESOLVED) { onResolved(this.value); } if (this.state === REJECTED) { onRejected(this.value); }};手写...图片像dom的拖拽,如果用消抖的话,就会出现卡顿的感觉,因为只在停止的时候执行了一次,这个时候就应该用节流,在一定时间内多次执行,会流畅很多手写简版使用时间戳的节流函数会在第一次触发事件时立即执行,以后每过...expires: 5000})// 过期后再取出来会变为 falselet value = storage.getItem('name');console.log('我是value',value);实现一个JS...[a-zA-Z0-9_\-])+$/; return regx.test(email);}实现有并行限制的 Promise 调度器题目描述:JS 实现一个带并发限制的异步调度器 Scheduler

51730
领券