剖析并实现一个简单版的koa框架

发布时间 : 2020-05-12
发布 : 2020-05-12 分类 : nodejs 浏览 :

koa 的核心思想在于基于中间件的洋葱模型,koa 通过一个 compose 函数,把一个一个的中间件串联起来,组合成了一个大的函数,在每个中间件里,通过 next() 执行下一个中间件。

Node WriteStream 可写流的实现原理

发布时间 : 2019-12-10
发布 : 2019-12-10 分类 : nodejs 浏览 :

可写流需要考虑并发写的问题,比如并发写时,要确保写的顺序不错乱。
为了保证并发写顺序不会乱,WriteStream 创建了一个链表结构缓冲区,
用来按顺序缓存待写的内容,等待当前正在写的内容写完,再依次从缓冲区中一个一个读取出来继续写。

手写一个 koa-ts-cli 脚手架(中文版)

发布时间 : 2019-11-17
发布 : 2019-11-17 分类 : nodejs 浏览 :

A simple CLI for create koa + ts project: koats create myProject.

手写一个 koa-ts-cli 脚手架(英文版)

发布时间 : 2019-11-13
发布 : 2019-11-13 分类 : nodejs 浏览 :

A simple CLI for create koa + ts project: koats create myProject.

关于 == 和 ===的区别

发布时间 : 2019-08-25
发布 : 2019-08-25 分类 : javascript 浏览 :

== 的判断规则
1、同类型比较,进行 === 比较
2、如果两个值类型不同,则根据如下规则进行类型转换再进行比较:

  • 1)如果一个是字符换,一个是数字,则将字符串转换成数字,再进行值比较
  • 2)如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
  • 3)如果一个是对象,另一个是基础类型(数值或字符串),则把对象转换成基础类型的值再比较。
  • 对象转换成基础类型,利用它的 toString 或者 valueOf 方法。
  • 4)高级类型与高级类型,进行指针地址比较
  • 5)如果一个是null,一个是undefined,那么相等

自动定时备份 mysql 数据库 的 shell 脚本

发布时间 : 2019-04-14
发布 : 2019-04-14 分类 : nodejs 浏览 :

通过 mysqldump 和 crontab 实现定时备份 mysql 数据库

基于nodejs koa2的解决跨域中间件设计

发布时间 : 2019-04-14
发布 : 2019-04-14 分类 : nodejs 浏览 :

解决浏览器跨域问题的方法有很多种

1) 通过后端设置 http Access-Control-* 相关响应头
2) 通过 Jsonp
3) 通过 nginx 反向代理

关于这三种解决跨域方法的介绍可以看我的另外一篇文章: 如何解决前端跨域问题

本文主要讲基于 nodejs koa2 实现第一种跨域方案,并设计成 koa2 中间件

关于浏览器预检请求

发布时间 : 2019-04-14
发布 : 2019-04-14 分类 : 前端跨域 浏览 :

在非简单请求且跨域的情况下,浏览器会发起options预检请求。

webpack4系列实践笔记

发布时间 : 2019-03-25
发布 : 2019-03-25 分类 : webpack 浏览 :

webpack 是目前 javascript 主流的工程自动构建工具,目前 Vue,React 以及 Angular 等项目脚手架都是基于 webpack 进行构建的。
本系列代码放在 github 上: webpack4系列实践代码

webpack4实践笔记19-webpack开发模式和生产模式

发布时间 : 2019-03-25
发布 : 2019-03-25 分类 : webpack 浏览 :

开发环境和生产环境的构建目标是有很大的不同的。
在开发环境中,为了便于代码调试以及实现浏览器实时更新,我们需要开启 source maplocalhost server
而在生成环境中,为了实现缓存优化以及改善加载时间,我们的目标转向于打包成更小的 bundlechunk,分离第三方包以及开启更轻量级的 source map 以及更优化的资源。
因此开发环境和生产环境需要单独配置 webpack。