koa2初探(四)常用中间件

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 有三个参数 [默认]

  1. pretty:[true] | false true 格式化json
  2. param:[‘none’] | ‘pretty’ 路径添加参数可以格式化json
  3. 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');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值