国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

learning koa1.x

gaosboy / 1066人閱讀

摘要:定義框架前端開(kāi)發(fā)框架,它是一款基于語(yǔ)法的網(wǎng)頁(yè)端開(kāi)發(fā)框架。它類似于框架,可以快速開(kāi)發(fā)服務(wù),方便快捷。

定義

koa框架 web前端開(kāi)發(fā)框架,它是一款基于es6語(yǔ)法的網(wǎng)頁(yè)端開(kāi)發(fā)框架。它類似于express框架,可以快速開(kāi)發(fā)服務(wù),方便快捷。

api手冊(cè)
http://koa.bootcss.com/

開(kāi)發(fā)實(shí)戰(zhàn)篇

首先,創(chuàng)建package.json 使用版本為1.x

npm init
#依賴
"dependencies": {
    "koa": "^1.1.2",
    "koa-bodyparser": "^2.0.1",
    "koa-hbs": "^0.7.0",
    "koa-json": "^1.1.1",
    "koa-logger": "^1.3.0",
    "koa-onerror": "^1.2.1",
    "koa-router": "^5.3.0",
    "koa-static": "^1.5.2",
    "koa-views": "^3.1.0",
}

其次,創(chuàng)建app.js

var koa = require("koa");
var app = koa();
// logger 中間件
app.use(function *(next){
  var start = new Date;
  yield next;
  var ms = new Date - start;
  console.log("%s %s - %s", this.method, this.url, ms);
});
// router 路由
app.use(function *(){
  this.body = "Hello World";
});
// port 端口
app.listen(3000);

啟動(dòng)完成!

知識(shí)點(diǎn)

Context(上下文)

將request 和 response 對(duì)象封裝在了一個(gè)多帶帶的對(duì)象里面,context = ctx = this

常用到的屬性和方法 ctx.response 、ctx.request 、 ctx.type 、ctx.length 、ctx.method 、ctx.app 、ctx.cookies、ctx.originalUrl 、ctx.path 、ctx.query 、ctx.querystring

Request(請(qǐng)求對(duì)象)

對(duì)node的request對(duì)象的進(jìn)一步封裝,提供了開(kāi)發(fā)中一些有用的功能

常用到的屬性和方法 req.header 、req.url、req.query、req.get(field)

Response(響應(yīng)對(duì)象)

對(duì)node的response對(duì)象的進(jìn)一步封裝,提供了開(kāi)發(fā)中一些有用的功能

常用到的屬性和方法 res.header、res.status、res.length、res.body 、res.redirect(url)

鏈接mysql

var mysql = require("mysql2");
var options = {
    "host": config.db_host,
    "port": config.db_port,
    "database": config.db_name,
    "user": config.db_user,
    "password": config.db_passwd,
    "charset": config.db_charset,
    "connectionLimit": config.db_conn_limit,
    "supportBigNumbers": true,
    "bigNumberStrings": true
}
var pool = mysql.createPool(options);
pool.getConnection(function(err, connection) {
   ......
}

log4js 日志

var log4js = require("log4js");
var logconfig = {
  appenders: {
    out: { type: "console" }, 
    errorLogger: {
      type: "dateFile",
      filename: errorLogPath,
      pattern: "-yyyy-MM-dd-hh.log",
      alwaysIncludePattern: true
    },
    resLogger: {
      type: "dateFile",
      filename: accessLogPath,
      pattern: "-yyyy-MM-dd-hh.log",
      alwaysIncludePattern: true
    }
  },
  categories: {
    default: { appenders: ["resLogger"], level: "info" },
    errorLogger: { appenders: ["out", "errorLogger"], level: "error" },
    resLogger: { appenders: ["out", "resLogger"], level: "info" }
  }
};
log4js.configure(logconfig);
var errorLogger = log4js.getLogger("errorLogger");

hbs模板

var hbs = require("koa-hbs");
{{#each rows}}
    
  • {{/each}}
    附錄

    整理完畢!

    文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/89023.html

    相關(guān)文章

    • Koa2源碼閱讀筆記

      摘要:引言最近空閑時(shí)間讀了一下的源碼在閱讀的源碼的過(guò)程中,我的感受是代碼簡(jiǎn)潔思路清晰不得不佩服大神的水平。調(diào)用的時(shí)候就跟有區(qū)別使用必須使用來(lái)調(diào)用除了上面的的構(gòu)造函數(shù)外,還暴露了一些公用的,比如兩個(gè)常見(jiàn)的,一個(gè)是,一個(gè)是。 引言 最近空閑時(shí)間讀了一下Koa2的源碼;在閱讀Koa2(version 2.2.0)的源碼的過(guò)程中,我的感受是代碼簡(jiǎn)潔、思路清晰(不得不佩服大神的水平)。下面是我讀完之后...

      plus2047 評(píng)論0 收藏0
    • koa源碼閱讀[1]-koa與koa-compose

      摘要:接上次挖的坑,對(duì)相關(guān)的源碼進(jìn)行分析第一篇。和同為一批人進(jìn)行開(kāi)發(fā),與相比,顯得非常的迷你。在接收到一個(gè)請(qǐng)求后,會(huì)拿之前提到的與來(lái)創(chuàng)建本次請(qǐng)求所使用的上下文。以及如果沒(méi)有手動(dòng)指定,會(huì)默認(rèn)指定為。 接上次挖的坑,對(duì)koa2.x相關(guān)的源碼進(jìn)行分析 第一篇。 不得不說(shuō),koa是一個(gè)很輕量、很優(yōu)雅的http框架,尤其是在2.x以后移除了co的引入,使其代碼變得更為清晰。 express和ko...

      vibiu 評(píng)論0 收藏0
    • async語(yǔ)法升級(jí)踩坑小記

      摘要:普通的回調(diào)函數(shù)調(diào)用執(zhí)行后續(xù)邏輯使用了以后的復(fù)雜邏輯獲取到正確的結(jié)果輸出兩個(gè)文件拼接后的內(nèi)容雖說(shuō)解決了的問(wèn)題,不會(huì)出現(xiàn)一個(gè)函數(shù)前邊有二三十個(gè)空格的縮進(jìn)。所以直接使用關(guān)鍵字替換原有的普通回調(diào)函數(shù)即可。 從今年過(guò)完年回來(lái),三月份開(kāi)始,就一直在做重構(gòu)相關(guān)的事情。 就在今天剛剛上線了最新一次的重構(gòu)代碼,希望高峰期安好,接近半年的Node.js代碼重構(gòu)。 包含從callback+async.w...

      VioletJack 評(píng)論0 收藏0
    • co源碼分析及其實(shí)踐

      摘要:返回的結(jié)果是一個(gè)對(duì)象,類似于表示本次后面執(zhí)行之后返回的結(jié)果。對(duì)象用于一個(gè)異步操作的最終完成或失敗及其結(jié)果值的表示簡(jiǎn)單點(diǎn)說(shuō)就是處理異步請(qǐng)求。源碼分析主要脈絡(luò)函數(shù)調(diào)用后,返回一個(gè)實(shí)例。參考鏈接解釋對(duì)象的用法的源碼及其用法 本文始發(fā)于我的個(gè)人博客,如需轉(zhuǎn)載請(qǐng)注明出處。為了更好的閱讀體驗(yàn),可以直接進(jìn)去我的個(gè)人博客看。 前言 知識(shí)儲(chǔ)備 閱讀本文需要對(duì)Generator和Promise有一個(gè)基本的...

      vincent_xyb 評(píng)論0 收藏0
    • 如何更好的編寫(xiě)async函數(shù)

      摘要:一個(gè)簡(jiǎn)單的轉(zhuǎn)換為的例子我們調(diào)用函數(shù)返回一個(gè)的實(shí)例,在實(shí)例化的過(guò)程中進(jìn)行文件的讀取,當(dāng)文件讀取的回調(diào)觸發(fā)式,進(jìn)行狀態(tài)的變更,或者狀態(tài)的變更我們使用來(lái)監(jiān)聽(tīng),第一個(gè)回調(diào)為的處理,第二個(gè)回調(diào)為的處理。 2018年已經(jīng)到了5月份,node的4.x版本也已經(jīng)停止了維護(hù) 我司的某個(gè)服務(wù)也已經(jīng)切到了8.x,目前正在做koa2.x的遷移 將之前的generator全部替換為async 但是,在替換...

      isaced 評(píng)論0 收藏0

    發(fā)表評(píng)論

    0條評(píng)論

    最新活動(dòng)
    閱讀需要支付1元查看
    <