MVC-CONTROL

server端建立在KOA2库之上,遵循MVC架构原理,目录结构如下

src/server
  │            
  ├── pages 
  │     └── hello.js  # 浏览器访问http://www.aaa.com/hello 将响应GET部分
  │
  └── plugins 
        └── xxx
             └── index.js

plugins

存放插件目录
用于自定义插件,自定义路由

pages

pages目录用来存放CONTROL层文件
aotoo-hub使用art-template模板引擎(支持双模板语法)
在使用render('pagename', renderData)方法来渲染页面时,我们只需关注renderData的设置及相关模板变量的设置

// src/server/pages/hello.js
// 访问url: http://localhost:3000/hello

module.exports = function (oridata) {
  // oridata {JSON} 默认包含静态资源索引地址  
  // 如果你定义了自定义模板(ejs),需要将变量挂载在oridata之上
  return {



    // 当我们在浏览器正常访问页面时
    // 响应 http://localhost:3000/hello  GET
    get: function name(ctx) {

      // 挂载变量
      // 把变量挂载在oridata上,模板中将会自动应用  
      oridata.title = 'aotoo-hub 多项目全栈脚手架'
      oridata.root = '123'


      // 将oridata返回给模板引擎,无需关心渲染过程
      return oridata
    }, 



    // 定义post,我们就定义了一个接口,接口地址为 http://localhost:3000/hello
    // 尝试使用postman向该接口发送请求
    post: function name(ctx) {
      return oridata
    }


  }
}