1. 介绍

  Koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。
koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。(来自kao官网)
基于async/await实现中间体系的koa2框架将会是是node.js web开发方向大势所趋的普及框架。基于generator/yield的koa1将会逐渐被koa2替代,毕竟使用co.js来处理generator是一种过渡的方式,虽然有其特定的应用场景,但是用async/await会更加优雅地实现同步写法。

  1. 安装

  • koa 依赖node V7.6.0及以上版本,
  • 首先确认node版本在7.6.0以上,版本低的请自行搞定。

npm init // 初始化package.json

npm i koa // 安装koa2

  1. 常用的引入模板

  2. 我们一般是不会这样直接返回的,实际开发中一般都是返回一个模版文件,我们可以先让koa读取这个文件,然后返回到用户界面。

    首先先创建一个views的目录,在里面新建一个template.html文件内容如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>hello koa2</title>
    </head>
    <body>
    <h1>Hello Koa2!</h1> </body>
    </html>

    Html前台页面

    将app.js中的内容修改为如下:

    const fs = require('fs');
    const Koa = require('koa');
    const app = new Koa(); app.use(async (ctx) => {
    // ctx.body = 'hello koa2'
    ctx.type = 'html';
    ctx.body = fs.createReadStream('./views/template.html');
    }); app.listen(1029);
    console.log('koa damo is starting at port 1029');

    JS Koa代码

  3. 基础结构语法

    1. const Koa = require('koa');
      const Router = require('koa-router'); let server = new Koa();
      let router = new Router(); server.listen(8080); router.get('/a', async ctx=>{
      ctx.body='aaaaa';
      }); server.use(router.routes())
      const Koa = require('koa');
      const Router = require('koa-router'); let server = new Koa();
      let router = new Router(); server.listen(8080); router.get('/a', async ctx=>{
      ctx.body='aaaaa';
      }); server.use(router.routes())Koa基础结
  1. 有哪些 属性?

    1.   ctx.method  请求方法
    2.   ctx.url
    3.   ctx.path
    4.   ctx.query        ?user=Haisen&id=1
    5.   ctx.params       数据参数
    6. ctx.ip           客户端IP
  2. 多层路由的分层写法

    1.   一级路由
      一层选择 主路由   server.use(router.routes());
    2. 二层路由

       二层路由   1.引入路由对象   2.创建路由   3.配置路由  4.对外使用

  • const Koa = require('koa');
    const Router = require('koa-router');

    let server = new Koa();
    server.listen(8080);
    let router = new Router();

    router.get('/',async ctx=>{
    ctx.body = '根目录'
    });

    router.use('/home',require('./routes/home'));
    // router.use('/admin',require('./routes/admin'));

    server.use(router.routes())

Koa2一层路由

const Router = require('koa-router');

// 嵌套二级
let home = new Router(); home.get('/',ctx=>{
ctx.body ='前端';
});
home.get('/login', async ctx=>{
ctx.body='login';
});
home.get('/sigin', async ctx=>{
ctx.body='sigin';
}); module.exports=home.routes();

Koa2二层路由

NodeJ Koa2 安装使用 reeber的更多相关文章

  1. 安装 NodeJ Koa2、3 + 独立插件 cli脚手架 npm cnpm Vue

    安装  NodeJ  npm  cnpm   Koa2.3 + 独立插件  cli脚手架    Vue 安装 在 这里写过了  这两个分开了写  Nodej:下载 node.js  安装  10.0版 ...

  2. koa2入门--01.ES6简单复习、koa2安装以及例子

    1.ES6简单复习 /*let 和 const: let用于定义一个块作用域的变量,const 定义一个常量 */ let a = 'test'; const b = 2; /*对象的属性和方法的简写 ...

  3. koa2安装

    安装 1. npm install koa-generator -g 2. Koa2 test-koa2 3. npm install & npm run dev 看package.json里 ...

  4. koa2第一天 安装koa2

    安装全局koa2:npm install -g koa2 -generator 创建一个koa2文件夹:koa2 -e koa2 进入koa2文件夹:cd koa2 安装npm模块:npm insta ...

  5. koa2第一天 安装koa2found 1 low severity vulnerability run `npm audit fix` to fix them, or `npm audit` for details

    安装全局koa2:npm install -g koa2 -generator 创建一个koa2文件夹:koa2 -e koa2 进入koa2文件夹:cd koa2 安装npm模块:npm insta ...

  6. koa2入门使用总结

    koa2的介绍 Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小.更富有表现力.更健壮的基石. 通过利用 async ...

  7. 从入门到不放弃系列之Koa2

    一.Koa2入门 本来是想Express入门的,但是既然都是要学,干嘛不学最新的呢? 其实我想说,我本来只是想学个小程序开发,现在已经陆陆续续开了好多坑了.. 本文参考廖雪峰教程 二.Async 最新 ...

  8. Koa2 的安装运行记录(二)

    参考 :koa2-boilerplate    https://github.com/superalsrk/koa2-boilerplate Ajax Login and Ajax Logout in ...

  9. Koa2 的安装运行记录(一)

    1.参考koa+react(一) http://blog.suzper.com/2016/10/19/koa-react-%E4%B8%80/ 为了使用 KOA2 能够运行,必须能够使用ES7语法 a ...

随机推荐

  1. Python爬虫教程-15-读取cookie(人人网)和SSL(12306官网)

    Python爬虫教程-15-爬虫读取cookie(人人网)和SSL(12306官网) 上一篇写道关于存储cookie文件,本篇介绍怎样读取cookie文件 cookie的读取 案例v16ssl文件:h ...

  2. C++ *this与this的区别(系个人转载,个人再添加相关内容)

    转载地址:http://blog.csdn.net/stpeace/article/details/22220777 return *this返回的是当前对象的克隆或者本身(若返回类型为A, 则是克隆 ...

  3. Android学习——Service(一)

    这篇博文来介绍Android另一个十分重要的组件,Service.Service和Activity很类似,区别在于它运行在后台,不可见且没有界面.Service的优先级高于Activity,当系统负载 ...

  4. IONIC调用原生的等待对话框

    ngCordova提供了progressIndicator插件,用以方便的显示等待对话框,但是目前版本仅支持安卓版本.为了让苹果版本也显示,可以到以下地址下载通用的插件,JS部分的代码无需改变: ht ...

  5. 抓取windows系统进程

    最近在开发辅流分享界面,然后之前的windows编程的代码都忘记了,翻到了一个博客,具体的还是去msdn去查函数,这个是入门的链接如下: http://blog.csdn.net/zdragon200 ...

  6. Python学习---socketServer编程

    学会去看源码 服务器端: import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): ...

  7. July 08th 2017 Week 27th Saturday

    You are never wrong to do the right thing. 坚持做对的事情,永远都不会错. I think the translation may be not precis ...

  8. ABAP SICF服务和Java Servlet的比较

    In my opinion ABAP ICF handler and Java Servlet play the same role in enhancement which enables your ...

  9. xml-apis-ext.jar

    xml-apis-ext.jar,hightcharts导出图片是解决乱码需要用到的一个包

  10. hdu-2620 Ice Rain---数论(取模运算规律)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2620 题目大意: 给出n和k求: 解题思路: kmodi=k-i*[k/i] ,所以=nk-(1*[ ...