swift - Vapor 如何通过电子邮件查找用户

标签 swift vapor

如何在登录方法中通过电子邮件在 vapor 中正确找到用户并返回该用户或返回错误, 我试过:

    func login(_ req: Request) throws -> Future<User> {
    return try req.content.decode(User.self).map { loginUser in
        let query = User.query(on: req)
        return query
            .filter(\.email == loginUser.email)
            .first()
            .flatMap { user in
                return user!.save(on: req)
            }

        }
}

但是我得到了

Cannot convert return expression of type 'EventLoopFuture' to return type 'User'

最佳答案

func login(_ req: Request) throws -> Future<User> {
    return try req.content.decode(User.self).flatMap { loginUser in
        return User.query(on: req)
            .filter(\.email == loginUser.email)
            .first()
            .unwrap(or: Abort(.notFound, reason: "User not found"))
    }
}

关于swift - Vapor 如何通过电子邮件查找用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61622814/

相关文章:

ios - type()不符合协议(protocol)

arrays - 创建不同枚举的集合

swift - NSTextView 不支持 Cocoa 应用中的重做和撤消

swift - Vapor:发送帖子请求

Swift 5.2 Xcode 11.4 Vapor 4.0.0 我应该如何在我的模型中编码 PK?

ios - 在变量中传递类类型

ios - 通过通知打开应用时打开特定 View

php - Steam 中的文件处理

macos - 热衷于保护 Vapor 代码免遭访问(任何类型的访问,甚至物理访问)?

swift - 在 MacOS 上将 Vapor 编译为独立应用程序