koa基礎實踐

2021-08-22 07:28:19 字數 4587 閱讀 9609

1.訪問靜態檔案: 使用中介軟體koa-static

const koa = require('koa');

const static = require('koa-static');

let server = new koa();

server.listen(8080);

// 訪問靜態檔案

server.use(static('www'));

在根目錄建立www資料夾,並新建1.html檔案,瀏覽器訪問路徑 http://localhost:8080/1.html 可訪問到對應檔案。

2.1訪問介面:使用中介軟體koa-route

const koa = require('koa');

const route = require('koa-route');

let server = new koa();

server.listen(8080);

//介面 /reg?user=***&psw=***

server.use(route.get('/reg',async (ctx,next)=>));

//如何獲取路由引數

server.use(route.get('/catch/:user/:psw',async (ctx,username,psw,next)=>));

瀏覽器訪問路徑 http://localhost:8080/reg?user=bboyjoe&psw=123456

node控制台會輸出:

瀏覽器訪問路徑 http://localhost:8080/catch/bboyjoe/123456

node控制台會輸出:

bboyjoe 123456
2.2 訪問介面:使用中介軟體koa-router

const koa = require('koa');

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

let server = new koa();

server.listen(8080);

let r1 = router();

server.use(r1.routes());

//介面 /login?user=***&psw=***

r1.get('/login',async (ctx,next)=>);

//介面 /reg/***/***

r1.get('/reg/:user/:psw',async (ctx,next)=>);

瀏覽器訪問路徑 http://localhost:8080/login?user=bboyjoe&psw=123456

node控制台輸出:

/login?user=bboyjoe&psw=123456
瀏覽器訪問路徑 http://localhost:8080/reg/bboyjoe/123456

node控制台輸出:

3.自己寫乙個訪問靜態檔案的中介軟體:

現在libs資料夾下建立my-static.js

const fs = require('fs');

const assert = require('assert');

module.exports = function (root) $`,(err,data)=>else

})})

}}

在實際中引用my-static:

const koa = require('koa');

const mystatic = require('./libs/my-static');

let server = new koa();

server.listen(8080);

// 訪問靜態檔案

server.use(mystatic('www'));

在根目錄建立www資料夾,並新建1.html檔案,瀏覽器訪問路徑 http://localhost:8080/1.html 可訪問到對應檔案。

4. 處理post資料:使用中介軟體koa-better-body來處理資料,使用koa-convert來相容版本

const koa = require('koa');

const body = require('koa-better-body');

const convert = require('koa-convert');

let server = new koa();

server.listen(8080);

server.use(convert(body()));

server.use(async ctx=>);

瀏覽器訪問該表單頁面,並提交資料,可以得到包含檔案在內的資料。

5. cookie操作

const koa = require('koa');

let server = new koa();

server.listen(8080);

//cookie加簽名

server.keys = ['jfdsakljhfgklashgkjh','iouoifoknhkjfklsdjflk','zjfjhasofjoiujofdsf'];

server.use(async ctx=>);

console.log(ctx.cookies.get('user',));

})

瀏覽器訪問http://localhost:8080,f12檢視相應cookie資訊。

6.session操作:使用中介軟體koa-session

const koa = require('koa');

const session = require('koa-session');

let server = new koa();

server.listen(8080);

server.keys = ['fdsajklsjalkgjlk','uioweuojlgkjsdlkj','fkljflkjeruoiu'];

server.use(session(,server));

server.use(async ctx=>else

console.log(ctx.session);

ctx.response.body = `這是你第$次來訪`;

});

瀏覽器訪問http://localhost:8080,可在node控制台檢視結果

7.mysql操作:使用中介軟體koa-mysql

const koa = require('koa');

const mysql = require('koa-mysql');

let server = new koa();

server.listen(8080);

const db = mysql.createpool();

server.use(async ctx=>else

})});

let datas = await p;

console.log(datas);

ctx.response.body = datas;

});

8.自己封裝mysql中介軟體:

const mysql = require('koa-mysql');

module.exports = else

})})

};return db;

}};

const koa = require('koa');

const mysql = require('./libs/koa-better-mysql');

let server = new koa();

server.listen(8080);

const db = mysql.createpool();

server.use(async ctx=>);

9.服務端渲染:使用中介軟體koa-ejs

const koa = require('koa');

const mysql = require('./libs/koa-better-mysql');

const ejs = require('koa-ejs');

let db = mysql.createpool();

let server = new koa();

server.listen(8080);

ejs(server,);

server.use(async ctx=>)

})

在template資料夾下建立index.ejs檔案

<% houses.foreach(json=>); %>

瀏覽器訪問localhost:8080可檢視效果

Koa2基礎學習

01 環境準備 安裝搭建專案的開發環境 02 中介軟體用法 講解 koa2 中介軟體的用法及如何開發中介軟體 03 路由koa router 04 post get請求 常見請求方式處理 05 分層 梳理 漸近於 mvc 分層模式 06 檢視nunjucks koa 預設支援的模板引擎 07 處理靜...

vue koa 美團實戰之koa基礎

安裝全域性腳手架 npm i g koa generator 使用 koa2 e koa2 learn cd koa2 learn npm install npm i update binary npm run dev宣告了async 可以沒有await 反之則不可以。router.get test...

後端基礎掃盲 koa洋蔥圈原理

首先平時我們寫middle ware都是像下面這樣對不對?async function fn1 next async function fn2 next async function fn3 next next方法是koa框架給我們的工具,那如果沒有這個next我們怎麼才能一層層呼叫下乙個方法呢?我...