定义
koa框架 web前端开发框架,它是一款基于es6语法的网页端开发框架。它类似于express框架,可以快速开发服务,方便快捷。
开发实战篇
首先,创建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}}
<li>
<div class="st-img">
<a href="/detail/{{this.uuid}}">
<img src="{{formateLink this.image}}" alt="" />
</a>
</div>
</li>
{{/each}}
附录
整理完毕!