我正在使用 Xcode 11.2 和 Swift 5.1 基于 Vapor 3.1.10 创建后端,数据库是 PostgreSQL 12。我有一个问题:如何在没有 POST 和 GET 请求的情况下与数据库(CRUD)交互。所有教程都展示了如何仅基于请求通过 HTTPS 进行 CRUD。但是,如果我的应用需要在不与网络交互的情况下将某些内容保存在数据库中怎么办?看我的代码:
import Vapor
import FluentPostgreSQL
final class Device: PostgreSQLModel {
var id: Int?
var isWorking: Bool
var serial: Int
init(isWorking: Bool, serial: Int) {
self.isWorking = isWorking
self.serial = serial
}
}
extension Device: Content {}
extension Device: Migration {}
extension Device: Parameter {}
经典的写或读方法是:
import Vapor
final class DeviceController {
func readAll(_ req: Request) throws -> Future<[Device]> {
return Device.query(on: req).all()
}
func create(_ req: Request) throws -> Future<Device> {
return try req.content.decode(Device.self).flatMap { device in
return device.save(on: req)
}
}
}
如何替换req
到我可以在本地创建的另一个后台安全线程?
例如:
let device = Device(isWorking: true, serial: 54321)
device.save(on: <#T##DatabaseConnectable#>)
如何更换<#T##DatabaseConnectable#>
?
我将感谢任何帮助或建议。