首页 目录 View on GitHub

the Leancloud framework G

返回

目的

express 的controller提供极丰富的输入输出功能,错误处理机制和类似传统mcv的调用方式。
值得注意的是,一旦使用ExpressController,就几乎无法实现RESTful

概念

默认位置
express/controllers 里存放的文件,内部除了 require 外还做了其他操作。 展示错误:如果是普通请求,则渲染配置中指定的模板,如果是ajax,则返回json,其status != 0。

API

构造函数(String title)

title是用于调试的名称 同时使 controller.log = runtime.logger = new Logger(title)

属性 method

可以设为 GET、POST、PUT、DELETE 等,也不完善的支持ALL。 从这个属性读取的时候,返回总是大写。

accept(String type)

type是一种body-parser,内置的有 raw、urlencoded、json、multipart、text 也可以通过扩展ExpressController.bodyParsers来增加更多类型

属性 main

设置一个函数,这个函数就是controller的主函数。 它被调用时,this和第一个参数都是 runtime 对象

next(Function cb)

生成一个 CallbackList 使 this.main = cl.getFunction(); 调用 cl.next(cb) 然后返回这个 cl * 注意 ExpressController不是 CallbackList 派生的,这个“next”只是为了好看,它与 CallbackList 的 next 没有关系。因此不能这样: controller.next(do_first_thing); controller.next(do_second_thing); 只能这样: controller.next(do_first_thing).next(do_second_thing);

prepare(String runtimeVarName)

创建一个 PrepareFunction 并返回,这个 PrepareFunction 的结果被存储在 runtime[runtimeVarName] 中

route(String path, Object router)

将当前控制器注册到 router 的 path 路径中 实际就是调用 router[controller.METHOD](path, controller.main),但不要这样做,因为里面还做了很多准备工作