Модель создания Vapor 4 Fluent не сохраняет ее в базе данных

#mysql #swift #vapor #vapor-fluent

#mysql #swift #vapor #vapor-fluent

Вопрос:

Я только начинаю использовать Vapor 4, и я создал POC, чтобы проверить, как сохранить модель в локальной базе данных MySQL.

Вот код, который я использую для контроллера, который должен сохранять модель в базе данных.

 public class ProductController {
static func create(req: Request) throws -> HTTPStatus {
    do {
        let input = try req.content.decode(Product.self)
        let product = Product(name: input.name, imageUrl: input.imageUrl, priceAmount: input.priceAmount, priceCurrencyCode: input.priceCurrencyCode, category: input.category)
        let _ = input.create(on: req.db).map {
            print("Product saved")
        }
        return HTTPStatus.ok
    } catch {
        return HTTPStatus.badRequest
    }
}
  

По какой-то причине «Сохраненный продукт» никогда не печатается, поэтому закрытие никогда не вызывается.
Когда я проверяю в базе данных, таблица products всегда пуста.

Заранее благодарим вас за помощь!

Карим

Ответ №1:

Попробуйте сохранить продукт вместо входных данных:

 return product.create(on: req.db).map { print("Product saved") }
       .transform(to: .ok)
  

Комментарии:

1. Присоединяйтесь к каналу vapor в Discord. Люди там намного отзывчивее, чем здесь!