我正在参加蒸汽视频课程。我严格按照它编写代码,当我尝试发送 Post 请求(由邮递员)时,会得到一个自定义错误代码。当然,一切都很好,而且代码似乎是相同的。有谁知道该怎么办吗?
import Foundation
import Fluent
import Vapor
struct ProductsController: RouteCollection {
func boot(routes: Vapor.RoutesBuilder) throws {
let productsGroup = routes.grouped("products")
productsGroup.post(use: createHandler)
productsGroup.get(use: getAllHandler)
}
func createHandler(_ req: Request) async throws -> Product {
guard let product = try? req.content.decode(Product.self) else {
throw Abort(.custom(code: 499, reasonPhrase: "Не получилось декодировать контент в модель продукта"))
}
try await product.save(on: req.db)
return product
}
func getAllHandler(_ req: Request) async throws -> [Product] {
let products = try await Product.query(on: req.db).all()
return products
}
}
routes.swift 文件中有一个连接。
import Fluent
import Vapor
func routes(_ app: Application) throws {
try app.register(collection: ProductsController())
}
几乎可以肯定,由于您的产品结构字段和 HTML 表单字段之间存在以下一项或多项差异,您的解码会失败。检查: