Как передать 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])
}
Другие вопросы по тегам