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());

koa2初探(四)常用中间件_第1张图片


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否则会失效
    koa2初探(四)常用中间件_第2张图片

app.use(json({ pretty: false, param: ‘pretty’}))

这里写图片描述koa2初探(四)常用中间件_第3张图片


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');

你可能感兴趣的:(Node.js)