实现简易的 express
1. 基础
最简单的服务器
const http = require('http');
const server = http.createServer(function (request, response) {
// 在这里处理请求
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
});
server.listen(8888);
console.log("端口: 8888");2. 实现
2.1 第一版,基础
首先 express 最简单的服务器代码如下:
即 express 是一个函数,函数执行能生成一个 app 对象,对象上具有 listen,于是我们可以写出以下的代码: express/index.js
2.2 第二版,请求方法和路径
在 express 中,能够针对请求的方法和路径,做对应的处理,比如:
此时访问 localhost:3000/name 返回 name,访问 localhost:3000/age 返回 9,如果没有对应的路由,则会匹配到 all 这个兜底路由: 为了实现以上效果,我们需要扩展我们的 express/index.js :
2.3 第三版,中间件
在 express 中,可以使用中间件,中间件可以在执行路由之前,对请求进行处理
那么继续修改我们的代码:
2.4 第四版,错误中间件
错误中间件,即当中间件使用参数调用 next() 函数时,该参数会被当做是 error,此时后续的中间件和路由都不会执行,而是直接执行错误中间件
那么继续改造我们的代码:
2.5 第五版,处理 req 的参数
express 中,对 req, res 对象进行了封装,可以便捷的得到一些参数:
这是因为 express 内部有内置的中间件,通过该中间件给 req 设置了属性, 代码如下:
3. TODO
路径参数 /user/:id
子路由
res 的封装
模板的渲染
参考资料
Last updated
Was this helpful?