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设置。
请勿设置请求周期内的值,该值是全局变量。
须避免使用已经存在于app.props属性中的name。查看已有name列表可使用Object.keys(app.props)。
get(name)
获取name对应的value。在业务代码中通过ctx.app.get获取。
filter(stageName, fn(ctx, next))
添加一个过滤器。stageName目前只能是 ['request', 'response']中的一个,fn是一个中间件处理函数。详细内容请参见Filter过滤器的介绍。
engine(extName, render(viewFilePath, data))
添加extName对应的后缀名的模板渲染方法render。比如:
extName是模板文件的后缀名,不需要加‘点’。app.engine('.html')是错误的,app.engine('html')是正确的。
render方法接受模板文件的绝对路径和传入的数据(ctx.state和ctx.apiData合并的数据),须为同步、异步或返回Promise的方法。
maty框架通过app.set('view engine', extName)来配置默认渲染引擎。默认引擎的作用是在Router配置的view值可以省略后缀名。
mount([path,] koaApp)
挂载maty服务到koaApp上,并只处理path开头的请求路径。path参数可选。
当需要接入到已有应用时,使用该方法。
Last updated
Was this helpful?