NodeJ Koa2 安装使用 reeber

  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.jsonhtml

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())
      View Code

      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.对外使用node

  • 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二层路由
相关文章
相关标签/搜索