node的早期,是荒芜的年代,正如之前我的那个哥们一样,那个时候,没有轮子。程序员自己制造了各种各样的轮子,真可谓是八仙过海,各显神通。那个时候node程序员一般这样开始写web应用:
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8888);
console.log('Server running at http://127.0.0.1:8888/');
终于,TJ打造了express、koa、koa2三大英雄,node的浪漫主义年代逐渐揭开了序幕。我们看下边的表:
英雄 | 说明 | 对应 | 经典 |
---|---|---|---|
express | web框架 | es5 | 回调嵌套 |
koa | web框架 | es6 | Generator函数+yield语句+Promise |
koa2 | web框架 | es7 | async/await+Promise |
下面我就开始说一下这三个框架和他们之间千丝万缕的联系
初代英雄:express
初代英雄:express
express的入门非常简单,通过创建express的Application就构建了一个expressweb实例。下面我们看看例子来感受一下:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
express本身封装了路由模块,因此,可以利用express直接处理各种http路由请求。
在express用四个主要模块:
模块 | 说明 | 解释 |
---|---|---|
Application | web服务器模块 |