Vapor 4 Fluent create Model不会将其保存到数据库

问题描述

我刚刚开始使用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
    }
}

由于某种原因,“已保存产品”永远不会被打印,因此永远不会调用闭包。 当我检入数据库时​​,表产品始终为空。

预先感谢您的帮助!

Karim

解决方法

尝试保存产品而不是输入:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...