epxress 源码初探
express是基于nodejs的一个web封装框架,致力于提供一个迷你灵活的可扩展的web开发服务。
nodejs HTTP模块原生web服务功能
nodejs原生提供了http模块,该模块就可以用来创建web服务器。
const http = require('http');
http.createServer((req, res) => {
// 处理请求的逻辑
res.end('hello world')
}).listen(9090);
使用express创建web服务
const express = require('express');
const http = require('http');
const app = express();
app.get('/', (req, res) => {
res.send('hello world')
})
http.createServer(app).listen(3000) //1.方法1
// app.listen(3000) //2. 方法2
对比分析
- express的基本使用,express本身就是对原生http服务的 业务处理 封装
- 其中express的使用中,方法1和2本质是一样的,从源码分析:
app.listen = function listen() {
var server = http.createServer(this);
return server.listen.apply(server, arguments); // listen方法的调用
};
//app.listen其实就是对Http.createServer的封装
- 那么express的主要功能就是业务处理部分的封装,这部分包含: 路由管理, 中间件处理等等,简单的就是提供一些方便的api供开发者方便的路由注册****中间件的配置