1

作为 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])
}

但是 Swift 抱怨这个错误:

error: cannot convert value of type '[[String : Node]]' to expected dictionary value type 'Node'
return try drop.view.make("report", ["data":data])
                                            ^~~~

感觉就像我错过了一个类型转换步骤,但它是什么?

4

1 回答 1

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])
}
于 2017-03-20T15:04:49.237 回答