请求,将模型数组保存在 vapor 3 中

request, that save array of models in vapor 3

如何使用 transactions 将模型数组更新为 mysql?并且returnOk操作成功后的响应

所以,我在没有交易的情况下解决了我的问题:

func update(_ req: Request, todos: [CreateTodoRequest]) throws -> Future<HTTPStatus> {
    let user = try req.requireAuthenticated(User.self)
    // 1
    return try todos.map { try Todo(todo: [=10=], userID: user.requireID()).create(on: req) }
        // 2
        .flatten(on: req)
        // 3
        .transform(to: .ok)
}

.create(on: req) return 一个 EventLoopFuture<Todo>。所以todos.map将return一个[EventLoopFuture<Todo>]的数组。第二步,将其转化为EventLoopFuture<[Todo]>。而第三步就是将其转化为HttpStatus.ok response