成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

learning koa1.x

gaosboy / 1074人閱讀

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

定義

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

api手冊
http://koa.bootcss.com/

開發(fā)實戰(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);

啟動完成!

知識點

Context(上下文)

將request 和 response 對象封裝在了一個多帶帶的對象里面,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(請求對象)

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

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

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

對node的response對象的進一步封裝,提供了開發(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89023.html

    相關(guān)文章

    • Koa2源碼閱讀筆記

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

      plus2047 評論0 收藏0
    • koa源碼閱讀[1]-koa與koa-compose

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

      vibiu 評論0 收藏0
    • async語法升級踩坑小記

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

      VioletJack 評論0 收藏0
    • co源碼分析及其實踐

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

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

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

      isaced 評論0 收藏0

    發(fā)表評論

    0條評論

    gaosboy

    |高級講師

    TA的文章

    閱讀更多
    最新活動
    閱讀需要支付1元查看
    <