我正在尝试使用vapor3执行原始sql查询。不幸的是,网站上提供的这类东西的文档非常模糊。
基本上我想做一些事情,比如:
router.get("example") { req -> Future<View> in
let leaf = try request.make(LeafRenderer.self)
// I can't get this next bit to work. Does anyone have any ideas how to do this? I seem to get all sorts of Xcode errors with .mysql, closures etc.
let users = try request.withNewConnection(to: .mysql) { connection -> EventLoopFuture<[User]>
return try connection.raw("select * from users").all(decoding: User.self)
}
var context = [String: String]()
context["user"] = users
return leaf.render("example", context)
}
如果你能帮我解决这个问题,我将不胜感激。
谢谢你,马特
1条答案
按热度按时间nvbavucw1#
代码失败是因为没有正确实现闭包。你的路线在
let users...
所以第二次return
永远无法到达。这样做有效:
这些变化是:
不需要定义
leaf
直到你需要它。定义
users
现在已经进入关闭状态了。