Как передать ResultSet из "MySql for Swift" в листовой конкурс шаблонов
Будучи новичком в Swift и Vapor, я экспериментирую с проектом Vapor. Он имеет простой маршрут, который выбирает данные из БД через MySQL для Swift, а затем передает ResultSet
в шаблон листа. Вот что я пытаюсь:
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])
^~~~
Такое ощущение, что я пропускаю шаг приведения типов, но что это?
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])
}