博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6 HttpApplication Middleware
阅读量:6831 次
发布时间:2019-06-26

本文共 1309 字,大约阅读时间需要 4 分钟。

const HttpRequest = function() {  this.query = ''}function HttpResponse() {  this.body = []  this.status = 0;}HttpResponse.prototype.write = function(block) {  this.body.push(block)}HttpResponse.prototype.display = function() {  console.log(this.body, this.status)}const HttpApplication = function() {  this.caches = []}HttpApplication.prototype.use = function(middleware) {  this.caches.push(middleware)}HttpApplication.prototype._createPipeLineItem = (fn, next) => {  return (req, rsp) => {    fn.call(this, req, rsp, next)  }}HttpApplication.prototype.applyRequest = function(req, rsp) {  const middleware = this.caches.map(item => item).reverse()  let lastHandler = (req, rsp) => {    rsp.write('404')    rsp.status = 404  }  for (let index = 0; index < middleware.length; index++) {    const element = middleware[index];    lastHandler = this._createPipeLineItem(element, lastHandler)  }  lastHandler(req, rsp)}const app = new HttpApplication()app.use((req, rsp, next) => {  rsp.write('first middleware')  next(req, rsp)  rsp.write('first middleware end')})app.use((req, rsp, next) => {  rsp.write('second middleware')  rsp.status = 200  // next(req, rsp)})const req = new HttpRequest()const rsp = new HttpResponse()app.applyRequest(req, rsp)rsp.display()

转载于:https://www.cnblogs.com/byxxw/p/9634323.html

你可能感兴趣的文章
LeetCode-Pascal's Triangle
查看>>
你可能不知道的PHP加减法
查看>>
初识 Express 框架
查看>>
SpringMVC之源码分析--HandlerMapping(五)
查看>>
JS中的正则表达式
查看>>
springboot+mybatis+vue(一),创建项目
查看>>
JS基础 -构造函数与原型、原型链 Part two
查看>>
一篇文章搞定Github API 调用 (v3)
查看>>
Linux Shell编程(6) - 字符操作命令:cut、printf、awk、sed、sort、wc
查看>>
《Maven实战》阅读总结(三)Maven生命周期与插件
查看>>
Vue2学习之旅一:初始化项目搭建(不带路由)
查看>>
DOM节点(二):操作节点
查看>>
Python每日一练0025
查看>>
【跃迁之路】【438天】程序员高效学习方法论探索系列(实验阶段195-2018.04.19)...
查看>>
Lucene系列(一)快速入门
查看>>
关于MVP设计模式举个栗子
查看>>
npm太慢?脚手架下载模板失败?
查看>>
对比JavaScript中的Continue和Break
查看>>
javascript基础之模块
查看>>
面试题20180302
查看>>