资讯专栏INFORMATION COLUMN

learning koa1.x

gaosboy / 932人阅读

摘要:定义框架前端开发框架,它是一款基于语法的网页端开发框架。它类似于框架,可以快速开发服务,方便快捷。

定义

koa框架 web前端开发框架,它是一款基于es6语法的网页端开发框架。它类似于express框架,可以快速开发服务,方便快捷。

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

开发实战篇

首先,创建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",
}

其次,创建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对象的进一步封装,提供了开发中一些有用的功能

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

Response(响应对象)

对node的response对象的进一步封装,提供了开发中一些有用的功能

常用到的属性和方法 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}}
    附录

    整理完毕!

    文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

    转载请注明本文地址:https://www.ucloud.cn/yun/89023.html

    相关文章

    • Koa2源码阅读笔记

      摘要:引言最近空闲时间读了一下的源码在阅读的源码的过程中,我的感受是代码简洁思路清晰不得不佩服大神的水平。调用的时候就跟有区别使用必须使用来调用除了上面的的构造函数外,还暴露了一些公用的,比如两个常见的,一个是,一个是。 引言 最近空闲时间读了一下Koa2的源码;在阅读Koa2(version 2.2.0)的源码的过程中,我的感受是代码简洁、思路清晰(不得不佩服大神的水平)。下面是我读完之后...

      plus2047 评论0 收藏0
    • koa源码阅读[1]-koa与koa-compose

      摘要:接上次挖的坑,对相关的源码进行分析第一篇。和同为一批人进行开发,与相比,显得非常的迷你。在接收到一个请求后,会拿之前提到的与来创建本次请求所使用的上下文。以及如果没有手动指定,会默认指定为。 接上次挖的坑,对koa2.x相关的源码进行分析 第一篇。 不得不说,koa是一个很轻量、很优雅的http框架,尤其是在2.x以后移除了co的引入,使其代码变得更为清晰。 express和ko...

      vibiu 评论0 收藏0
    • async语法升级踩坑小记

      摘要:普通的回调函数调用执行后续逻辑使用了以后的复杂逻辑获取到正确的结果输出两个文件拼接后的内容虽说解决了的问题,不会出现一个函数前边有二三十个空格的缩进。所以直接使用关键字替换原有的普通回调函数即可。 从今年过完年回来,三月份开始,就一直在做重构相关的事情。 就在今天刚刚上线了最新一次的重构代码,希望高峰期安好,接近半年的Node.js代码重构。 包含从callback+async.w...

      VioletJack 评论0 收藏0
    • co源码分析及其实践

      摘要:返回的结果是一个对象,类似于表示本次后面执行之后返回的结果。对象用于一个异步操作的最终完成或失败及其结果值的表示简单点说就是处理异步请求。源码分析主要脉络函数调用后,返回一个实例。参考链接解释对象的用法的源码及其用法 本文始发于我的个人博客,如需转载请注明出处。为了更好的阅读体验,可以直接进去我的个人博客看。 前言 知识储备 阅读本文需要对Generator和Promise有一个基本的...

      vincent_xyb 评论0 收藏0
    • 如何更好的编写async函数

      摘要:一个简单的转换为的例子我们调用函数返回一个的实例,在实例化的过程中进行文件的读取,当文件读取的回调触发式,进行状态的变更,或者状态的变更我们使用来监听,第一个回调为的处理,第二个回调为的处理。 2018年已经到了5月份,node的4.x版本也已经停止了维护 我司的某个服务也已经切到了8.x,目前正在做koa2.x的迁移 将之前的generator全部替换为async 但是,在替换...

      isaced 评论0 收藏0

    发表评论

    0条评论

    gaosboy

    |高级讲师

    TA的文章

    阅读更多
    最新活动
    阅读需要支付1元查看
    <