作为Swift和Vapor的新手,我正在尝试一个Vapor项目。它有一个简单的路由,它通过MySQL for Swift从数据库中获取数据,然后将ResultSet
传递给Leaf模板。这就是我的尝试:
drop.get("report") {req in
let data = try mysql.execute("select * from things")
return try drop.view.make("report", ["data":data])
}
但斯威夫特抱怨这个错误:
error: cannot convert value of type '[[String : Node]]' to expected dictionary value type 'Node'
return try drop.view.make("report", ["data":data])
^~~~
感觉我错过了一个类型转换步骤,但它是什么?
答案 0 :(得分:1)
您应该可以通过手动将字典数组的类型设置为Node
来解决此问题:
drop.get("report") {req in
let data = try mysql.execute("select * from things")
let dataNode = Node.array(data.map({ return Node.object($0) }))
return try drop.view.make("report", ["data":dataNode])
}