VaporiOS程序猿iOS-swift

Vapor实战2 —MVC

2016-10-06  本文已影响117人  AbooJaner

Vapor网络框架的代码设计模式是遵循MVC的,新建文件的时候,你需要把它放进对应的文件夹,不然 vapor build 的时候会提示错误,看它的代码文件结构:

// M
.
├── App
.   └── Models
.       └── User.swift
// V
.
├── App
└── Resources
    └── Views
         └── user.html
// C
.
├── App
.   └── Controllers
.       └── UserController.swift

Model

新建的数据模型类需要继承自 Fluent 框架里面的 Model 类,一方面是方便 JSON 数据的转化,另一方面是方便与数据库连接操作。

继承自 Model 的类需要注意以下几点:

View

视图文件存放在文件夹 ResourcesView 子文件夹内,它可以是 html 文件,也可以是标签型语言的文件,模板项目里面的视图文件则是 leaf 后缀的。

视图文件写好之后,则可以通过 drop.view.make() 函数访问,例如:

drop.get("html") { request in 
  return try drop.view.make("index.html")
}

Controller

控制器主要是方便代码解耦,把不同的业务逻辑放到不同的控制器里面。

一个简单的控制器可以像下面那样:

final class HelloController { 
    func sayHello(_ req: Request) throws -> ResponseRepresentable { 
       guard let name = req.data["name"] else { 
            throw Abort.badRequest 
       } 
      return "Hello, \(name)" 
    }
}

然后在 main.swift 声明以上控制器方法:

let hc = HelloController();
drop.get("hello", hc.sayHello);

这样运行项目就可以通过 http://{host}/hello 访问到 sayHello 方法了。

demo

https://github.com/AbooJan/VaporDemo

上一篇 下一篇

猜你喜欢

热点阅读