app实例对象

maty()方法执行后创建一个app对象,该对象继承自Koa Application。

首先,app对象具备Koa Application的所有方法和属性。比如app.use()、app.listen()、app.callback()常用方法。详细可参见Koa官网

其次,maty框架对app对象进行了方法的扩展。主要方法如下:

set(name, value)

存储name对应的value,可用作全局存储。在业务代码中通过ctx.app.set设置。

get(name)

获取name对应的value。在业务代码中通过ctx.app.get获取。

filter(stageName, fn(ctx, next))

添加一个过滤器。stageName目前只能是 ['request', 'response']中的一个,fn是一个中间件处理函数。详细内容请参见Filter过滤器的介绍。

engine(extName, render(viewFilePath, data))

添加extName对应的后缀名的模板渲染方法render。比如:

// 添加后缀为jade的模板渲染方法,例如home.jade文件
app.engine('jade', (filePath, data) => {
  const fn = jade.compileFile(filePath, {
    cache: false
  });
  const html = fn(data);

  return html;
});

maty框架通过app.set('view engine', extName)来配置默认渲染引擎。默认引擎的作用是在Router配置的view值可以省略后缀名。

mount([path,] koaApp)

挂载maty服务到koaApp上,并只处理path开头的请求路径。path参数可选。

当需要接入到已有应用时,使用该方法。

Last updated

Was this helpful?