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二層路由
相關文章
相關標籤/搜索