什么是koa

基于node.js 平台的下一代web开发框架

async await

npm install --save koa

npm install --save koa-router

ctx.query ==== ctx.request.query

ctx.querystring ==== ctx.request.querystring

引用koa-router   配置router

app.use(router.routes())

app.use(router.allowedMethods())

动态路由 /:id  ctx.params.id

koa中间件与模板渲染

koa-compose

像栈的操作   先进后出

洋葱模型

  ctx context

  操作先进后出

  有先进后出的机制 next()

  有提前结束的机制

中间件类型

  应用级中间件 // vue 全局导航守卫

  路由中间件 // 独享路由守卫

  错误处理中间件 // 应用级中间件 处理错误  进行错误兜底

  第三方中间件 // koa-bodyparse(拿body信息)

只要用到中间件必须.use()

模板渲染引擎 ejs koa-views

const views = require('koa-views');
app.use(
    views(__dirname + '/page', {
        map: { html: 'ejs' }
    })
);

koa-bodyparser中间件与post请求

form post

koa-static 静态文件 启动了一个静态资源服务器

js css image ...

const static = require('koa-static');
app.use(static(__dirname + '/static'));

Koa与Express比较

Koa 小而精 纯  用到什么引入什么 由express原班人马重新打造的node开发工具

Express 大而全 重 里面包含多个中间件

异步流程控制

express callback

koa1 generator

koa2 async await

错误处理

express callback捕获错误  深层次的错误难捕获

koa2 try catch 更好的解决异常错误

综上所述:

新项目 定制化  解耦  koa --->推荐使用koa async await 模式已经成为主流

express 成熟 喜欢一体的 集成开发

node-koa的更多相关文章

  1. Docker + node(koa) + nginx + mysql 线上环境部署

    在上一篇 Docker + node(koa) + nginx + mysql 开发环境搭建,我们进行了本地开发环境搭建 现在我们就来开始线上环境部署 如果本地环境搭建没有什么问题,那么线上部署的配置 ...

  2. Docker + node(koa) + nginx + mysql 开发环境搭建

    什么是Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然 ...

  3. node+koa中转层开发实践总结

    node中转层的意义: 1.能解决前后端代码部署在不同服务器下时的跨域问题.(实现) 2.合并请求,业务逻辑处理.(实现) 3.单页应用的首屏服务端渲染.(暂未实现) 环境准备: node: ^8.1 ...

  4. node(koa)微信公众号接口认证

    使用微信测试号, 花生壳内网穿透 需要注意 token 两边都是自定义, 需要保持一致, const Koa = require('koa') const sha1 = require('sha1') ...

  5. Node KOA框架入门

    KOA: v1 generator v2 过渡版 generator&async v3 async/await koa koa不带路由 因此得cnpm i koa-router -D 路由:1 ...

  6. node,koa 图片批量添加水印,可手动配置水印位置

    公司设计在处理京东上架商品图片的时候,需要给设计好的图片添加京东的“logo”,并且logo位置得根据图片来摆放,需要通过计算得出logo位置.那样太麻烦了,于是就用node,koa写了批量给图片添加 ...

  7. Vue+Koa+MongoDB从零打造一个任务管理系统

    大概是在18年的时候,当时还没有疫情.当时工作中同时负责多个项目,有 PC 端运营管理后台的,有移动端 M 站的,有微信小程序的,每天 git 分支切到头昏眼花,每个需求提测需要发送邮件,而且周五要写 ...

  8. ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)

    前言 性能是我们日常生活中经常接触到的一个词语,更好的性能意味着能给我们带来更好的用户体检.比如我们在购买手机.显卡.CPU等的时候,可能会更加的关注于这样指标,所以本篇就来做一个性能评测. 性能也一 ...

  9. es6+react环境搭建

    工具说明 Node Koa React Webpack 项目结构 - build 客户端代码的构建文件目录 - config 项目的配置文件 - docs 项目相关的文档目录 - lib 服务端库文件 ...

  10. 前端项目中常用es6知识总结 -- 箭头函数及this指向、尾调用优化

    项目开发中一些常用的es6知识,主要是为以后分享小程序开发.node+koa项目开发以及vueSSR(vue服务端渲染)做个前置铺垫. 项目开发常用es6介绍 1.块级作用域 let const 2. ...

随机推荐

  1. java实现求逆序对

    1 问题描述 给定一个随机数数组,求取这个数组中的逆序对总个数.要求时间效率尽可能高. 那么,何为逆序对? 引用自百度百科: 设 A 为一个有 n 个数字的有序集 (n>1),其中所有数字各不相 ...

  2. java实现 洛谷 P1056 排座椅

    import java.util.Arrays; import java.util.Map.Entry; import java.util.Scanner; import java.util.Tree ...

  3. java算法集训代码填空题练习3

    1 数组转置 编写程序将2行3列的数组行列置换复制给3行2列的数组(即数组的转置).已经写了如下代码,请完善之: class y{ public static void main(String[] a ...

  4. Python基础语法之“print()”函数

    print()函数是Python入门的第一个必学知识点,它经常被用来调试已写的代码,检验效果,今天小老鼠就带你盘点一下print()函数在Python中如何使用. print()函数的工作流程是这样的 ...

  5. tensorflow2.0学习笔记

    今天我们开始学习tensorflow2.0,用一种简单和循循渐进的方式,带领大家亲身体验深度学习.学习的目录如下图所示: 1.简单的神经网络学习过程 1.1张量生成 1.2常用函数 1.3鸢尾花数据读 ...

  6. transport方式连接Elasticsearch6.2.3

    连接ES有3中方式: ①transport方式 ②rest方式 ③JEST方式(第三方) 我自己项目使用第一种方式,代码和配置如下: 1.引入依赖 <dependency> <gro ...

  7. kibana的Dev Tool中如何对es进行增删改查

    kinaba Dev Tool中对es(elasticSearch)进行增删改查 一.查询操作 查询语句基本语法 以下语句类似于mysql的: select * from  xxx.yyy.topic ...

  8. LeetCode 76,一题教会你面试算法时的思考套路

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第45篇文章,我们一起来看看LeetCode的76题,最小窗口子串Minimum Window Substrin ...

  9. Mbatis使用

    Mybatis的搭建过程 导入jar 创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置 <?xml version="1.0" encod ...

  10. Java并发--ReentrantLock原理详解

    ReentrantLock是什么? ReentrantLock重入锁,递归无阻塞的同步机制,实现了Lock接口: 能够对共享资源重复加锁,即当前线程获取该锁,再次获取不会被阻塞: 支持公平锁和非公平锁 ...