楼盘设计师工资一般多少,什么是seo教程,山西网站建设平台,中国建材人才网上一篇简单写了 怎么创建 Swift Vapor 项目以及在开发过程中使用到的软件。 这一篇写一个怎么在创建的项目中创建一个简单的查询数据和插入数据。 注#xff1a;数据库配置比较重要
先将本地的Docker启动起来#xff0c;用Docker管理数据库 将项目自己创建的Todo相关的都删掉…上一篇简单写了 怎么创建 Swift Vapor 项目以及在开发过程中使用到的软件。 这一篇写一个怎么在创建的项目中创建一个简单的查询数据和插入数据。 注数据库配置比较重要
先将本地的Docker启动起来用Docker管理数据库 将项目自己创建的Todo相关的都删掉使用自己创建的 创建自定义 Model (与数据库字段一一对应
import Fluent
import Vapor
import Securityfinal class Song: Model, Content {static let schema: String songsinit() {}ID(key: .id)var id:UUID?Field(key: title)var title: Stringinit(id: UUID? nil, title: String) {self.id idself.title title}}在 Migrations中创建与数据库交互代码(映射)
import Fluentstruct CreateSongs: Migration {// 创建数据库func prepare(on database: FluentKit.Database) - NIOCore.EventLoopFutureVoid {return database.schema(songs).id().field(title,.string,.required).create()}func revert(on database: FluentKit.Database) - NIOCore.EventLoopFutureVoid {return database.schema(songs).delete()}}需要在 configure 文件中进行配置
// 添加配置代码
app.migrations.add(CreateSongs())
try app.autoMigrate().wait()在 routes 文件中进行路由配置
import Fluent
import Vaporfunc routes(_ app: Application) throws {app.get { req async inIt works!}// 注册路由try app.register(collection: SongController())}在 Controllers中创建自己的代码
import Fluent
import Vaporstruct SongController: RouteCollection {func boot(routes: Vapor.RoutesBuilder) throws {let songs routes.grouped(songs)songs.get(use: index)songs.post(use: create)}// GET Request /songs routefunc index(req: Request) throws - EventLoopFuture[Song] {return Song.query(on: req.db).all()}// POST Request /songs create 增func create(req: Request) throws - EventLoopFutureHTTPStatus {let song try req.content.decode(Song.self)return song.save(on: req.db).transform(to: .ok)}}自此简单代码配置已经完成。
自此运行项目可能会出现报错现象进入项目目录命令行工具中输入
docker-compose up dbdocker创建了数据库需要启动(一种是手动启动、一种是使用命令启动)
如果顺利的话项目就可以正常运行。 接下来使用 Postman进行调试 上图为添加歌曲名称 上图为获取歌曲列表 上图Docker中数据库运行状态
可以使用Azure Data studio 进行查看Docker中创建的数据库信息 到此一个简单的使用Swift Vapor 插入数据查询数据完成。