koa-static
处理静态资源文件(如:image,css,js)
const staticFiles = require('koa-static')
// 指定 public目录为静态资源目录,用来存放 js css images 等
app.use(staticFiles(path.resolve(__dirname, "./public")))
koa-logger
开发日志
常规使用方法
const logger = require('koa-logger')
app.use(logger());
koa-json
返回json数据
const json = require('koa-json')
app.use(json(opt))
opt 有三个参数 [默认]
- pretty:[true] | false true 格式化json
- param:[‘none’] | ‘pretty’ 路径添加参数可以格式化json
- spaces:num [2] tab间距 只有pretty为ture时才生效,param为pretty时不要加spaces否则会失效
app.use(json({ pretty: false, param: ‘pretty’}))
koa-onerror
错误处理
const onerror = require('koa-onerror')
// error handler
onerror(app)
koa-session
用于保存登录信息或其他信息 cookie
const session = require('koa-session');
const Koa = require('koa');
const app = new Koa();
app.keys = ['some secret hurr'];
const CONFIG = {
key: 'koa:sess', /** (string) cookie key (默认值 koa:sess) */
/** Warning: 如果会话cookie被窃取,此cookie将永远不会过期。 */
maxAge: 86400000, /** (number || 'session') 单位:ms (默认值 一天) */
/** 如果设置为 'session' 当会话或浏览器关闭时,cookie就会过期*/
overwrite: true, /** (boolean) 能否被重写 (default true) */
httpOnly: true, /** (boolean) 只允许http请求 (default true) */
signed: true, /** (boolean) 是否签名 (default true) */
rolling: false, /** (boolean) 到期重置maxAge (default is false) */
renew: false, /** (boolean) 过期前重新更新cookie,可以保持登录状态(default is false)*/
};
app.use(session(CONFIG, app));
//使用默认设置 => app.use(session(app));
app.use(ctx => {
// ignore favicon
if (ctx.path === '/favicon.ico') return;
let n = ctx.session.views || 0;
ctx.session.views = ++n;
ctx.body = n + ' views';
});
app.listen(3000);
console.log('listening on port 3000');