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

时间:2018-09-30 08:20:01

标签: fluent vapor

如何使用mysql将一系列模型更新到transactions中?并在成功操作后返回Ok响应

1 个答案:

答案 0 :(得分:7)

因此,我无需交易即可解决我的问题:

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

.create(on: req)返回一个EventLoopFuture<Todo>。因此todos.map将返回[EventLoopFuture<Todo>]的数组。第二步是将其转换为EventLoopFuture<[Todo]>。第三步是将其转换为HttpStatus.ok响应