Vapor 数据持久化的简单介绍以及Fluent的使用

2018-01-28  本文已影响57人  Vine_Finer

关于web框架、这里使用vapor

使用 vapor --help 命令我们可以看到有几种模板可供我们使用。

Api模板

vapor new Hello --template=api

Web模板

vapor new Hello --template=api

因为有模板,所以会简单很多。

这里不再进行编写ORM,这里介绍一下vapor的Fluent

如果出错可以看官方文档

谷歌翻译一下,大致如下。

反正就是不用自己写SQL语句就能进行数据的增删改查。

创建一个Model

final class Pet: Model {
    var name: String
    var age: Int
    let storage = Storage()

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    init(row: Row) throws {
        name = try row.get("name")
        age = try row.get("age")
    }

    func makeRow() throws -> Row {
        var row = Row()
        try row.set("name", name)
        try row.set("age", age)
        return row
    }
}

Storage

Row

The Row struct represents a database row. Your models should be able to parse from and serialize to database rows.

Preparing the Database

In order to use your model, you may need to prepare your database with an appropriate schema.

Preparation

extension Pet: Preparation {
    static func prepare(_ database: Database) throws {
        try database.create(self) { pets in
            pets.id()
            pets.string("name")
            pets.int("age")
        }
    } 

    static func revert(_ database: Database) throws {
        try database.delete(self)
    }
}

其他更多用法可以看官方文档

Fluent文档

上一篇 下一篇

猜你喜欢

热点阅读