koa01

一、koa簡介javascript

 

koa是express團隊開發的一個更加輕量級的服務端開發框架,也是將來的趨勢java

二、安裝es6

npm i -g koa-generator //全局安裝koa腳手架express

三、建立項目npm

koa2 項目名稱json

例如:koa2 -e koa2-learn //e的意思是使用ejs模板引擎,要不默認jadepromise

將爲咱們建立一個koa-learn目錄cookie

接下來進入該目錄,根據提示執行cnpm iapp

可能須要進行2次安裝,看提示有無Pass --update-binary...框架

複製DEBUG...代碼,運行koa

在package.json文件中能夠修改啓動方式:

npm run dev能夠實現修改過程當中的監聽

端口默認運行在3000

 

四、

koa中的全局變量被稱爲global而不是window

 

五、koa異步,es6異步語法

async(param)=>{

await ... //只有在有聲明async的方法內才準使用await

}

解決回調地獄,咱們可使用Promise,也可使用await

舉例分析:

const a=await A
const b=await B
const c=await C

上述代碼爲僞代碼,ABC是不一樣的異步操做

在A未執行完成前不會執行下一行代碼,以此類推

至關於用同步的寫法完成了異步的過程

這裏的ABC就是Promise對象,若是不是promise對象將自動轉換,即Promise.resolve(data)

正確執行promise過程後的傳給resolve的data將被賦值給a

 

六、koa2中間件

const+require引入中間件。經過app.use聲明使用

引用時按順序,使用時沒有順序

中間件都會被通過兩次

 

一個簡單的中間件編寫:

function pv(ctx){
    //ctx是一個全局對象,掛載了request和response的信息
    global.console.log(ctx.path)

    module.export=function(){
        return async function(ctx,next){
            pv(ctx)
            await next()//pv中間件處理完畢,准許移交下一個中間件處理
        }
    }
}

  使用時,在app.js中書寫:

const pv=require('./middleware/koa-pv')

app.use(pv())

保證了兩次交互。

 

八、koa-router 的用法:

根據子域名不一樣可配置不一樣的路由文件:

body屬性返回相應的一些數據,能夠返回多種類型:字符串,json等

render方法返回一個頁面

const router =require('koa-router')

router.prefix('./user')

 

九、koa讀寫cookie

ctx.get/ctx.set

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息