koa2入门--03.koa中间件以及中间件执行流程
- //中间件:先访问app的中间件的执行顺序类似嵌套函数,由外到内,再由内到外
- //应用级中间件
- const koa = require('koa');
- var router = require('koa-router')();
- var app = new koa();
- //匹配任意路由之前打印日期
- app.use(async (ctx,next)=>{
- console.log(new Date());
- await next();
- });
- router.get('/',async (ctx)=>{
- ctx.body = '首页';
- });
- //路由级中间件
- //匹配到news后继续向下匹配路由
- router.get('/news',async (ctx,next)=>{
- console.log('这是一个新闻');
- await next();
- });
- router.get('/news',async (ctx)=>{
- ctx.body = '这是一个新闻';
- });
- //错误处理中间件
- app.use(async (ctx,next)=>{
- console.log('这是一个中间件01');
- next();//先处理中间节
- if(ctx.status == 404){
- ctx.status = 404;
- ctyx.body = '这是一个404页面';
- }else{
- console.log(ctx.url);
- }
- });
- app.use(router.routes());
- app.use(router.allowedMethods());
- app.listen(3000);
koa2入门--03.koa中间件以及中间件执行流程的更多相关文章
- Spring MVC入门(一)—— SpringMVC的执行流程与常用注解
一.什么是SpringMVC SpringMVC就是类似于Struts2的mvc框架,属于SpringFrameWork的后续产品.在模型层中与视图层的交互部分. springMVC执行流程: 二.常 ...
- koa 中,中间件异步与同步的相关问题
同步中间件很容易理解,如以下代码: const Router = require('koa-router') , koa = new Router({ prefix: '/koa' }) , fs = ...
- {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...
- Django中间件执行流程
中间件函数是 django 框架为我们预留的函数接口, 让我们可以干预请求和应答的过程 1. 获取浏览器端的IP地址: 使用 request.META[‘REMOTE_ADDR’] 2. 使用中间件 ...
- Django中间件的执行流程
Django中间件的执行流程. 请求到达中间件之后,先按照正序执行每个注册中间件的process_reques方法,process_request方法返回的值是None,就依次执行, 如果返回的值是H ...
- Django基础之中间件的执行流程
当请求到达中间件以后,先按照正序执行每个注册中间件的process_request方法,process_request方法返回的值是None,就依次执行. 如果返回的值是HttpResponse对象, ...
- koa 基础(十一)koa 中 koa-bodyparser 中间件获取表单提交的数据
1.app.js /** * koa 中 koa-bodyparser 中间件获取表单提交的数据 * 1.npm install --save koa-bodyparser * 2.引入 const ...
- 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程
003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...
- koa2入门使用总结
koa2的介绍 Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小.更富有表现力.更健壮的基石. 通过利用 async ...
随机推荐
- hdu4176 水题
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #def ...
- iOS:学习runtime的理解和心得
http://www.cocoachina.com/ios/20150901/13173.html 作者:兴宇是谁 授权本站转载. Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门 ...
- 2019-8-29-dotnet-core-使用-sqlite-部署到-Centos-服务器
title author date CreateTime categories dotnet core 使用 sqlite 部署到 Centos 服务器 lindexi 2019-08-29 19:1 ...
- 【Linux】 经典Linux系统工程师面试题(转载)
1.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0: 答: # iptables -t nat -A PREROUTING -d 192.16 ...
- Myeclipse tomcat(jdk)安装
- Careers/Staffing Index
Careers/Staffing Index Not having data governance can hurt your business. Download this eBook to ...
- 中国剩余定理(SCAUOJ 1077)
1077 韩信点兵 时间限制:500MS 内存限制:65536K提交次数:1103 通过次数:99 题型: 编程题 语言: 无限制 Description 相传汉高祖刘邦问大将军韩信统御兵士多少 ...
- springmvc使用javabean作为请求参数
1 首先写两个javabean对象 person 和 address 代码如下.两个类之间的关系如代码中 package cn.bean.demo.bo; public class Person ...
- 分布式TensorFlow集群local server使用详解
通过local server理解分布式TensorFlow集群的应用与实现. 简介 TensorFlow从0.8版本开始,支持分布式集群,并且自带了local server方便测试. Local ...
- lua在C/C++中使用table生成对应键及值
int nTop = lua_gettop(L); // 栈内初始数,假设当前为0 lua_newtable(L); // push table lua_pushstring(L,"Line ...