自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嘿嘿

当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。

  • 博客(84)
  • 收藏
  • 关注

转载 koa源码阅读[1]-koa与koa-compose

接上次挖的坑,对koa2.x相关的源码进行分析第一篇。不得不说,koa是一个很轻量、很优雅的http框架,尤其是在2.x以后移除了co的引入,使其代码变得更为清晰。express和koa同为一批人进行开发,与express相比,koa显得非常的迷你。因为express是一个大而全的http框架,内置了类似router之类的中间件进行处理。而在koa中,则将类似功能的中间件全部摘了...

2019-12-31 16:00:10 137

转载 Koa2源码阅读笔记

引言最近空闲时间读了一下Koa2的源码;在阅读Koa2(version 2.2.0)的源码的过程中,我的感受是代码简洁、思路清晰(不得不佩服大神的水平)。下面是我读完之后的一些感受。Koa的设计理念Koa 是一个轻量级的、极富表现力的 http 框架。一个web request会通过 Koa 的中间件栈,来动态完成 response 的处理。Koa2 采用了 async 和 a...

2019-12-31 15:58:27 140

转载 koa-router是什么

koa-router源码分析koa-router是什么koa-router的github主页给出的定义是:Router middleware for koa.定义非常简洁,含义也一目了然,它就是koa的路由中间件。koa为了自身的轻量,不在内核方法中绑定任何中间件,而路由功能对于一个web框架来说,又是必不可少的基础功能。因此koa-router为koa提供了强大的路由功能。...

2019-12-31 15:57:22 653

转载 Koa源码浅析

Koa源码十分精简,只有不到2k行的代码,总共由4个模块文件组成,非常适合我们来学习。参考代码:learn-koa2我们先来看段原生Node实现Server服务器的代码:const http = require('http');const server = http.createServer((req, res) => { res.writeHead(200); ...

2019-12-31 15:54:53 188

转载 express学习

本文档基于express4.x版本http://expressjs.com/express Hello Worldmkdir hello && cd hello && npm install express 新建app.js内容如下 var express = require('express');var app = express();...

2019-12-31 15:52:42 336

转载 express.js 路由实现解读

关于express.js的实现源码解读,版本为 4.14。主要为路由部分。一个Web框架最重要的模块是路由功能,该模块的目标是:能够根据method、path匹配需要执行的方法,并在定义的方法中提供有关请求和回应的上下文。模块声明express中的路由模块由Router完成,通过完成调用Router()得到一个router的实例,router既是一个对象,也是一个函数,原因是实现了类似...

2019-12-31 15:50:41 339

转载 你可能会用到的一个路由适配器

前言此时状态有点像上学时写作文,开篇总是"拉"不出来,憋的难受。原文地址源码地址从背景出发前后端分离后,前端童鞋会需要处理一些node层的工作,比如模板渲染、接口转发、部分业务逻辑等,比较常用的框架有koa、koa-router等。现在我们需要实现这样一个需求:用户访问/fe的时候,页面展示hello fe 用户访问/backend的时候,页面展示hello ba...

2019-12-31 15:46:15 139

转载 从头实现一个koa框架

欢迎去我的博客观看:https://github.com/mly-zju/blog/issues/9koa.js是最流行的node.js后端框架之一,有很多网站都使用koa进行开发,同时社区也涌现出了一大批基于koa封装的企业级框架。然而,在这些亮眼的成绩背后,作为核心引擎的koa代码库本身,却非常的精简,不得不让人惊叹于其巧妙的设计。在平时的工作开发中,笔者是koa的重度用户,因此...

2019-12-31 15:44:42 118

转载 中间件执行模块koa-Compose源码分析

读了下Koa的源码,写的相当的精简,遇到处理中间件执行的模块koa-Compose,决定学习一下这个模块的源码。阅读本文可以学到:Koa中间件的加载 next参数的来源 中间件控制权执行顺序先上一段使用Koa启动服务的代码:放在文件app.js中const koa = require('koa'); // require引入koa模块const app = new koa...

2019-12-31 15:43:11 268

转载 koa-router 源码浅析

代码结构执行流程上面两张图主要将koa-router的整体代码结构和大概的执行流程画了出来,画的不够具体。那下面主要讲koa-router中的几处的关键代码解读一下。读代码首先要找到入口文件,那几乎所有的node模块的入口文件都会在package.json文件中的main属性指明了。koa-router的入口文件就是lib/router.js。第三方模块...

2019-12-31 15:41:54 194

转载 老板的手机收到一个红包,为什么红包没居中?如何让一个元素水平垂直居中?

本文的最新内容将在GitHub上实时更新。欢迎在GitHub上关注我,一起入门和进阶前端。前言老板的手机收到一个红包,为什么红包没居中?如何让一个子元素在父容器里水平垂直居中?这个问题必考,在实战开发中,也应用得非常多。你也许能顺手写出好几种实现方法。但大部分人的写法不够规范,经不起千锤百炼。换句话说:这些人也就面试的时候夸夸其谈,但真的上战场的时候,他们不敢这么写,也不知...

2019-12-30 14:39:05 161

转载 CSS样式----浮动(图文详解)

本文最初发表于博客园,并在GitHub上持续更新。以下是正文。标准文档流宏观地讲,我们的web页面和photoshop等设计软件有本质的区别:web页面的制作,是个“流”,必须从上而下,像“织毛衣”。而设计软件,想往哪里画个东西,都能画。标准文档流的特性我们来看看标准流有哪些微观现象。(1)空白折叠现象:无论多少个空格、换行、tab,都会折叠为一个空格。比如,如...

2019-12-30 14:29:06 448

转载 Promise原理浅析

Promise介绍项目相关demo和代码地址介绍Promise 对象用于延迟(deferred) 计算和异步(asynchronous ) 计算.。一个Promise对象代表着一个还未完成,但预期将来会完成的操作。 Promise 对象是一个返回值的代理,这个返回值在promise对象创建时未必已知。它允许你为异步操作的成功或失败指定处理方法。 这使得异步方法可以像同步方法那样返回值:...

2019-12-30 11:55:17 865

转载 JavaScript 构造器模式

JavaScript 构造器模式构造器模式在面向对象编程中,构造器是一个当新建对象的内存被分配后,用来初始化该对象的一个特殊函数。在JavaScript中几乎所有的东西都是对象,我们经常会对对象的构造器十分感兴趣。对象构造器是被用来创建特殊类型的对象的,首先它要准备使用的对象,其次在对象初次被创建时,通过接收参数,构造器要用来对成员的属性和方法进行赋值。对象创建下面是我们创建对...

2019-12-30 10:37:04 128

转载 组件化开发--实践记录与总结

题要在参与【腾讯课堂,暑期早起团】活动开发的过程中,涉及到了课程卡片的展示。具体效果如下:图中每个白底的框框是一个课程卡片,课程卡片组合在一起形成课程面板。本文主要记录对课程卡片和课程面板的优化过程。包含 "原始版本>优化组件step1>优化组件step2>优化组件step3",每一步都有相应的目录和代码说明,最后的step3给出了完整的js代码,所以本文中代...

2019-12-30 09:49:38 296

转载 如何用Node去写一个Web应用框架

第一步,用node输出一个hello worldvar http=require('http');http.createServer(function(req,res){ var urlPares=url.parse(req.url); var query=querystring.parse(urlPares.query); res.end('hello world...

2019-12-30 09:47:20 191

转载 Git 介绍

一,理解 Git1,分布式版本控制Git 版本控制系统的设计思想是"去中心化"。传统的 CVS 、SVN 等工具采用的是 C/S 架构,只有一个中心代码仓库,位于服务器端。而一旦由于服务器系统宕机、网络不通等各种原因造成中心仓库不可用,整个 CVS 、SVN 系统的代码检入与检出就瘫痪了。为了摆脱对中心仓库的依赖,Git 的初始设计目标之一就是分布式控制管理。即每个成员本地都是一个...

2019-12-30 09:44:35 292

转载 js依赖注入初探

前言:一个题目之前在codewars上做在线题目时遇到这样一个问题:实现一个依赖注入的“注射器”。当时对依赖注入这一概念还不是很理解,只是根据题目的要求初步认识了依赖注入。题目的要求如下:/** * Constructor DependencyInjector * @param {Object} - object with dependencies */var DI = func...

2019-12-30 09:43:14 694

转载 基于node+socket.io+redis的多房间多进程聊天室

本文作者:IMWeb jaychen原文出处:IMWeb社区未经同意,禁止转载一、相关技术介绍:消息实时推送,指的是将消息实时地推送到浏览器,用户不需要刷新浏览器就可以实时获取最新的消息,实时聊天室的技术原理也是如此。传统的Web站点为了实现推送技术,所用的技术都是轮询,这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求。短轮询(Polling)客户端...

2019-12-30 09:31:11 257

转载 腾讯在线教育小程序开发实践之路

一、腾讯在线教育小程序矩阵首先介绍下腾讯在线教育下的3个主要业务:面向成人职业化,兴趣化学习的腾讯课堂 面向小学,初高中k12领域的企鹅辅导 面向少儿英语学习的ABCmouse每个业务下都有PC Web,客户端,H5,APP这几端,来满足学生的多端上课需求。但由于教育的前身是基于QQ群视频孵化出来的,后续也是围绕QQ生态去搭建产品形态,所以在流量上面,QQ相关的流量占比较多。...

2019-12-30 09:17:47 2148

转载 CSS 外边距合并

外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。外边距合并外边距合并(叠加)是一个相当简单的概念。但是,在实践中对网页进行布局时,它会造成许多混淆。简单地说,外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。当一个元素出现在另...

2019-12-29 17:30:42 81

转载 用AOP来让你的JS代码变得更有可维护性吧

好吧我承认这是篇任务。最近看到个消息,ES2017已经定稿了,心想,我去,还完全没了解ES2016呢,ES8就定稿了,out了,这可咋办,赶紧Google(Baidu)去!不过从ES6(2015)之后,tc39的规划是一年一个版本,所以ES7跟ES8也不会像ES6那么大的步子。粗略瞟了一眼,咦,装饰器(Decorator)还没到 Stage 3啊,好吧不过已经到了2了,想必之后还是会慢慢纳...

2019-12-28 15:22:42 305

转载 动手实现一个JavaScript的AOP(一)

文章首发于我的个人博客huangmb.github.io,欢迎关注。前言AOP即面向切面编程,简单来说就是可以通过编译期或者运行时在不修改源代码的情况下给程序动态增加功能的一种技术。AOP应用场景AOP比较典型的应用有:日志记录、性能监控、埋点上报、异常处理等等。对于业务无关的附加功能,直接写到业务代码中也可以实现,但这显然不是一个有"洁癖"程序员的作风;而且这些功能往往需求多...

2019-12-28 15:19:05 491

转载 收罗CSS布局中有关水平和垂直居中的N种方法

最近开始倒回来看看CSS这块儿有什么不太了解的地方需要巩固!呵,好家伙!一番折腾之后我发现还真有很多不太了解的。真是学无止境啊...CK说网上有很大概15种可以让CSS元素居中的方法。Oh,卖糕的!这是逼我查资料到夜晚两点的节奏么?闲话休体,现在我们来进入正题咯:先来说说水平居中。CSS水平居中的方法: 1、最常见的margin方法:给元素设置一个显示式的宽度,然后加上margin的左右值...

2019-12-28 13:12:20 132

转载 CSS常用布局学习

最近开始学习CSS,了解了一些基础和常规写法。CSS的知识十分复杂,是值得不断发掘和完善的一个前端模块。对于新人来说,最好的方法就是尝试,去模仿,遇到问题再去深入,一点一点得增加对CSS的基础的理解。CSS布局对于新人来说,是一个比较基础的难点,首先我们应该理解一些常用的布局属性学习CSS布局通过这以网站,学习'display','position'以及 'float' 等属性,加深对...

2019-12-28 11:40:23 220

转载 纯CSS 实心三角形 + 实心矩形 气泡对话框

纯CSS 实心三角形 + 实心矩形 气泡对话框我们先说一下这个实心三角形 + 实心矩形气泡对话框的实现的思路:①设置矩形,填充背景色 ;②添加伪元素before,绘制三角形箭头 ;③调整三角形箭头与矩形的位置,使两者结合在一起一、绘制矩形对话框在绘制如上图这样一个带实心三角形的气泡对话框之前,我们先绘制一个矩形,并将这个矩形背景填充上颜色,使它成为一个实心...

2019-12-27 17:10:04 1559

转载 CSS实现短信气泡对话框

CSS实现短信气泡对话框今天一朋友问我,像微信这聊天模式,网页上可以实现不,然后正好手里事情不多,就研究了下,主要是小三角比较难做,就在网上找找资料,研究了下,出来了,嗯。兼容性,IE下,没有圆角。上图:好了,废话不多说,上Demo:http://demo.webjyh.com/bubble/下面为各位上代码:CSS代码 以下代码中缺少清楚浮动样式: 01 ...

2019-12-27 16:43:17 753

转载 https://c.runoob.com/examples/page/13

菜鸟教程案例https://c.runoob.com/examples/page/13

2019-12-26 17:06:01 2121

转载 css伪类和伪元素

css伪类 css伪类用于向某些选择器添加特殊的效果。:link, :visited, :hover, :focus, :active, :first-child, :langcss3新增的伪类::last-child, :only-child, :first-of-type, :last-of-type, :only-of-type, :nth-child(n), :nth-last-...

2019-12-26 16:58:46 143

转载 Egg + Webpack 热更新实现

1. 背景在用 Node.js + Webpack 构建的方式进行开发时, 我们希望能实现修改代码能实时刷新页面 UI的效果. 这个特性 Webpack 本身是支持的, 而且基于koa也有现成的 koa-webpack-hot-middleware 和 koa-webpack-dev-middleware 封装好的组件支持.不过这里如果需要支持Node.js服务器端修改代码自动重启webp...

2019-12-26 14:03:53 1103

转载 Egg 源码解析之 egg-cluster

egg-cluster 是什么为了将多核 CPU 的性能发挥到极致,最大程度地榨干服务器资源,egg 采用多进程模型,解决了一个 Node.js 进程只能运行在一个 CPU 上的问题,egg-cluster是用于 egg 多进程管理的基础模块,负责底层的 IPC 通道的建立以及处理各进程的通信Egg 多进程模型master主进程 workermaster 的子进程,一般是根...

2019-12-26 14:02:13 576

转载 Nodejs + WebSocket + Vue 实现多人聊天室WebIM功能 – 第二章

前言在《Nodejs + WebSocket简单介绍及示例 - 第一章》中简单的介绍了,Nodejs + WebSocket的使用方法及作用,今天就用它来搭建一个简单的聊天室功能。1、Nodejs+WebSocket创建后台服务器功能2、Vue视图层,接收后台数据并渲染页面3、LocalStorage存储会话ID等用户信息vue+ webpack 生成vue项目脚手架搭建...

2019-12-25 09:54:44 429

转载 如何定位 Node.js 的内存泄漏

在《一次 Node.js 应用内存暴涨分析》中,我们处理了一个 Node.js vm 引发的内存泄漏问题,处理过程也是比较艰辛。而在我们实际开发中,可能经常会碰到内存泄漏的问题,但很多情况下,我们对于这种问题的处理是有些迷茫的,没有一定的操作流程,效率比较低。虽然这种问题对于经验的要求比较高,但如果有一个简单的排查流程,还是会有一定帮助的。这里简单整理一个流程,欢迎一起探讨,补充。...

2019-12-24 17:07:33 1225

转载 浅谈 Node.js 和 PHP 进程管理

众所周知,PHP 占据了服务端编程语言的半壁江山,正如汪峰在音乐圈的地位一般。随着 Node.js 逐渐走上服务端编程的舞台,关于 PHP 和 Node.js 孰优孰劣的争论也不曾间断。垄断性的市场份额足以佐证 PHP 的优秀。并且 HHVM 虚拟机、PHP 7 的革新,也给 PHP 带来了跨越式的性能突破。然而,当我们为语言层面的性能差异喋喋不休时,却往往忽略了 Web 模型在性能表现...

2019-12-24 17:04:57 210 1

转载 如何将你的 ThinkJS 项目部署到 ZEIT 上

如何将你的 ThinkJS 项目部署到 ZEIT 上什么是 ZEIT 如何使用 ZEIT 部署 Koa.js 服务 Fork 快速部署 命令行部署 注意事项 部署 ThinkJS 服务 服务启动问题 文件引用问题 项目文件相对引用 依赖文件相对引用 写入权限问题 后记什么是 ZEITZEIT是免费的云平台,支持部署静态网站以及 S...

2019-12-24 16:49:56 287

转载 ES7 Decorator 装饰者模式

1、装饰模式设计模式大家都有了解,网上有很多系列教程。这里只分享装饰者模式以及如何使用 ES7 的decorator概念。1.1、装饰模式 v.s. 适配器模式装饰模式和适配器模式都是包装模式(Wrapper Pattern),它们都是通过封装其他对象达到设计的目的的,但是它们的形态有很大区别。适配器模式我们使用的场景比较多,比如连...

2019-12-24 16:46:44 334

原创 typescript

http://caibaojian.com/es6/module.htmlhttps://www.runoob.com/w3cnote/es6-tutorial.htmlhttps://www.w3cschool.cn/socket/socket-5tbu2eid.html

2019-12-24 15:16:22 109

转载 CSS position 相对定位和绝对定位

一、position 的四个值:static、relative、absolute、fixed。绝对定位:absolute 和 fixed 统称为绝对定位相对定位:relative默认值:static二、relative定位与absolute定位的区别实例:HTML代码:css代码:初始效果:1、relative:相对于原来位置移动,元素设置此属性之后...

2019-12-23 17:15:19 671

转载 Egg 框架简述 (一):简单的骨架认知

Egg 框架模型简述 (一)简单的骨架认知1-1. 简述1-2. 简单层级关系1-3. 路由(Router)1-4. 内置对象(Router)1-5. 配置(Config)1-6. 中间件(MiddleWare)插件使用(Plugins) 持久层方案(egg-sequelize) Worker 和 高效负载均衡 Agent 代理角色 定时任务笔者的其...

2019-12-23 16:42:37 1002

转载 CSS float详解

前言:在我们写CSS样式的时候,float,position,display,overflow这几个关键字用得比较多。弄清楚他们之间的原理,我们可以更高效的写出我们想要的布局。作者:Ry-yuan原文地址:http://www.cnblogs.com/Ry-yuan/p/6816290.html一、float1.什么是浮动:在我们布局的时用到的一种技术,能够方便我们进行布局,通...

2019-12-23 11:39:08 312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除