node開發(fā)框架koa入門

前序:

對于node開發(fā),之前一直用的是express,但是上網看了一下之后,發(fā)現(xiàn)koa已經在慢慢取代express了,而且開發(fā)團隊是同一個,所以就在這里用上koa體驗一把。

開發(fā)前:

這里,我們需要一個版本比較新的node去運行koa,在windows上可以用n,在linux上可以用yarn去管理node版本。
接下來就是安裝koa:

npm install koa --save-dev

我們也可以創(chuàng)建一個手腳架

npm install koa-generator -g

生成項目,這里命名為HelloKoa2

koa2 HelloKoa2

進入文件并安裝依賴

cd HelloKoa2
npm install

啟動

npm run start

自建開發(fā)架

首先,我們必須準備es7的編譯工具,所以我們需要安裝babel-core和babel-preset-stage-0

npm install babel-sore babel-preset-stage-0 --save-dev

接下來我們需要新建一個start.js作為一個入口并提供編譯

var register = require('babel-core/register');

register({
    presets:['stage-0']
})

require('./index.js')

接下來我們新建一個index.js作為接口入口

const Koa = require('koa');
const app = new Koa();
app.use(async (ctx,next) = > {
    //這里ctx是接受參數(shù),另外我們可以通過next()來進入下一個處理鏈
    console.log(ctx);
    await next();
})

app.use(async (ctx,next)=>{
    //通過await進入處理
})

因為接口的調用是以不同路徑名去分發(fā),下面我們就需要引入koa-router了

主要步驟:

const koaRouter=require('koa-router')();
app.use(koaRouter.routes());
koaRouter.get('/', async (ctx,next)=>{
    console.log(ctx);
    // ctx.response.body = 'Hello Koa2.0!';
});

總體代碼:

// 導入koa,和koa 1.x不同,在koa2中,我們導入的是一個class,因此用大寫的Koa表示:
const Koa = require('koa');
// 注意require('koa-router')返回的是函數(shù):
const koaRouter=require('koa-router')();
// 創(chuàng)建一個Koa對象表示web app本身:
const app = new Koa();

app.use(koaRouter.routes());
app.use(async (ctx, next) => {
    await next();
});


// response
koaRouter.get('/app/:name', async (ctx,next)=>{
    console.log(ctx.params.name);
    // ctx.response.body = 'Hello Koa2.0!';
});

app.listen(3000);

這里標注一下,node版本不夠高的話ctx會拿不到值,之前用7.2.1版本就太低了

對于post請求,我們需要中間件koa-body來獲取參數(shù)

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

app.use(bodyParser());

備注一下,koa1是用koa-bodyparser作為中間件的

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容