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-模块3-re

    今天我们就说一个模块,那就是re,不过想要了解re模块,我们得先了解一下什么是正则表达式,有助于我们更好的学习re模块 一.正则表达式 首先, 我们在网页上进行注册或者登陆的时候经常能看到一些格式上的 ...

  2. C#打印代码运行时间

    使用以下方法可以准确的记录代码运行的耗时. System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); / ...

  3. Spring中无法访问resources目录下页面或静态资源

    1.新建项目,在 resources 目录下创建 views 目录,在 views 目录下创建 index.html 页面,项目跑起来,浏览器访问页面,提示找不到页面之类的错误提示. 2.再尝试访问图 ...

  4. Unity导出APk出错解决方法二

    错误提示(需得打开编辑器log文件才能看到全部log,Unity3d只显示一部分): Error building Player: CommandInvokationFailure: Unable t ...

  5. Canvas杂谈

    最近在看一些关于Canvas的知识...这篇文章主要是用来记录学习中遇见的一些问题...以及难以理解的一些东西.. 转帖请注明出处:http://www.cnblogs.com/Troy-Lv5/p/ ...

  6. linux(centos)设置tomcat开机启动

    方法一: linux 下tomcat开机自启动修改Tomcat/bin/startup.sh 为: export JAVA_HOME=/usr/java/j2sdk1.4.2_08 export CL ...

  7. npm install warning: no description; no repository field

    npm install 报错:warning no description; no repository field 开始以为必须npm init,npm init在git bash(win7)里,还 ...

  8. Mysql学习---SQL语言的四大分类

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHE ...

  9. 一个几百行代码实现的http服务器tinyhttpd

    /* J. David's webserver */ /* This is a simple webserver. * Created November 1999 by J. David Blacks ...

  10. MQ7.5以后的权限问题解决

    MQ7.5以后权限是个问题,目前我也没有什么特别好的解决办法,把认证通道关闭就可以正常使用. 下面是IBM 官方的解释,可惜我没调通,望高人指点! 疑问 您使用MQ 7.1或者7.5创建了一个新的队列 ...