Koa2框架原理及实现
Koa2框架原理及实现 Koa2是一个基于Node实现的Web框架,特点是优雅、简洁、健壮、体积小、表现力强。它所有的功能通过插件的形式来实现。
下面自己实现一个简单的Koa,通过这种方式来深入理解Koa原理,尤其是中间件部分的理解。Koa的具体实现可以看的koa的源码。
12345678910111213// koa 的简单使用import Koa from 'koa'const app = new Koa()const port = 3000app.use((ctx) => { ctx.body = 'hello koa'})app.listen(port, () => { console.log(`server is running at Http://localhost${port}`)})
启动应用,浏览器中打开 http://localhost:3000/
通过上面的代码,如果要实现koa,需要实现三个模块,分别是http的封 ...
程序设计的 SOLID 原则
程序设计的 SOLID 原则🎯SOLID 原则其实是用来指导软件设计的,它一共分为五条设计原则,分别是:
单一职责原则(SRP)
开闭原则(OCP)
里氏替换原则(LSP)
接口隔离原则(ISP)
依赖倒置原则(DIP)
单一职责原则(SRP)🎯
核心思想:类的职责应该单一,不要承担过多的职责。
先看下面这段代码,为 Book 创建了一个类,但是类中却承担了多个职责,比如把书保存为一个文件:
123456789101112class Book { public title: string; public author: string; public description: string; public pages: number; // constructor and other methods public saveToFile(): void { // some fs.write method to save book to file }}
遵循单一职责原则,应该创建两个类,分别负 ...
nodemon
Swap nodemon instead of node to run your code, and now your process will automatically restart when your code changes. To install, get Node.js, then from your terminal run:
安装npm install -g nodemon
配置有两种配置方式
1. 创建nodemon.json12345678{ "verbose": true, "ignore": ["*.test.js", "fixtures/*"], "execMap": { "rb": "ruby", "pde": "processing --sketch={{pwd}} --run" }}
...
Hello-Hexo
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment