- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 vapor 的新手,我被卡住了。我正在学习本教程:https://www.xplusz.com/how-to-do-basic-crud/但我使用的是 MySQL 数据库而不是 postgresql 数据库。
所以这是我的代码:耐心.swift
import Foundation
import Vapor
import Fluent
final class Patient: Model {
var id: Node?
var firstName: String
var lastName: String
var exists: Bool = false
init(firstName: String, lastName: String) {
self.id = nil
self.firstName = firstName
self.lastName = lastName
}
init(node: Node, in context: Context) throws {
id = try node.extract("id")
firstName = try node.extract("first_name")
lastName = try node.extract("last_name")
}
func makeNode(context: Context) throws -> Node {
return try Node(node: [
"id": id,
"first_name": firstName,
"last_name": lastName
])
}
static func prepare(_ database: Database) throws {
try database.create("patients") { users in
users.id()
users.string("first_name")
users.string("last_name")
}
}
static func revert(_ database: Database) throws {
try database.delete("patients")
}
}
主.swift
import Vapor
import VaporMySQL
let drop = Droplet(
providers:[VaporMySQL.Provider.self]
)
drop.get { req in
return try drop.view.make("welcome", [
"message": drop.localization[req.lang, "welcome", "title"]
])
}
drop.get("version"){request in
if let db = drop.database?.driver as? MySQLDriver{
let version = try db.raw("SELECT version()")
return try JSON(node: version)
}else{
return "No db connection"
}
}
drop.post("patients") { request in
print(request.json)
var patient = try Patient(node: request.json)
try patient.save()
return patient
}
drop.get("patients"){request in
return try JSON(node: Patient.all().makeNode())
}
drop.resource("posts", PostController())
drop.run()
如果我运行版本,一切正常:
[
{
"version()": "5.7.14"
}
]
但是例如,如果我运行 post 或 get requests,我会得到一个错误:
教程并没有谈到首先在数据库中创建一个表,但这就是 prepare 函数的内容,对吗?还有什么问题吗?
mysql.json
{
"host": "localhost",
"user": "root",
"password": "",
"database": "development",
"port": "3306",
"encoding": "utf8"
}
最佳答案
我认为这是与命名转换有关的问题。在 postman 中,您发送名为“firstName”和“lastName”的参数,在您的模型类中,您使用的参数是下划线分隔的,例如“first_name” >"& "last_name",您应该遵循相同的命名转换。
更新:-
尝试以下方式,如果您仍然遇到此错误,请告诉我。
guard let first_name = request.data["first_name"]?.string, let last_name = request.data["last_name"]?.string else {
return try JSON(node:[
"error": true,
"message": "first_name or last_name not found"
])
}
var patient = Patient(firstName: first_name, lastName: last_name)
do {
try patient.save()
return try JSON(node:[
"error" : false,
"message" : "patient added successfully"
])
} catch let error{
return try JSON(node:[
"error" : true,
"message" : "\(error)"
])
}
更新 2:-
使用前应添加提供者并准备数据库。
try drop.addProvider(VaporMySQL.Provider.self)
drop.preparations = [Patient.self]
关于ios - Fluent.EntityError 错误 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41994883/
这是我的 Fluent 模型 struct Ailment: PostgreSQLModel { enum Frequency: String , Content { case regular
我正在尝试使用 Fluent Nhibernate 自动映射一个简单的继承层次结构,并且我需要为每个表使用与其类稍有不同的名称(下划线而不是 Pascal 大小写)。这似乎是一个使用约定的明显地方。我
如何为没有标识列的表指定流畅的 NHibernate 映射? 我想要这样的东西: public sealed class CustomerNewMap : ClassMap, IMap { p
使用 FluentMigrator,有没有办法找出 MigrateUp() 函数是否确实会迁移某些东西,或者它是否已经是最新的? 最佳答案 没有简单的方法可以使用公共(public) api 判断 M
我正在使用 Fluent NHibernate,我喜欢它! 我有一个小问题:启动时间大约是 10 秒,我不知道如何优化 Fluent nHibernate 为了减少这个启动时间的问题,我把它放在一个线
我在 Fluent NHIbernate 中使用 AutoPersistenceModel 来映射我的所有实体,并且一切正常:D 但是,我的几个对象有 public virtual IList Com
我有一个数据库,我正在运行多个应用程序。我喜欢通过为每个应用程序创建模式来分隔表。对于我最新的应用程序,我使用的是 FluentNHibernate。似乎我的大部分管道都是正确的,但是当我尝试查询其中
应用程序有许多扩展程序集,它们包含其类的映射。我需要为这些映射中的所有(基本、连接、多对多等)表名添加前缀。 例如 Assembly: ~/bin/Extensions/Foo.dll
您好,我很好奇 DDD 是如何使用 Fluent Nhibernate 真正实现的。例如,我有一个名为 User 的实体类和另一个名为 UserProfile 的类,就我而言,UserProfile
是否可以在 Fluent NHibernate 中映射来自多个程序集的实体? 我试过了 AutoPersistenceModel .MapEntitiesFromAssemblyOf() .AddEn
我有一个看起来像这样的基类: public abstract class MyBaseClass { public virtual DateTime UpdatedOn { get; set;
我有 Post 和 Comment 类,它们有一对多的关系,其中 Post 有一个评论列表。我如何将其映射为与 Fluent NHibernate 的单向关系,因为评论不需要知道其父 Post?目前,
我对如何查询模型对象的子对象并立即使用它感到困惑。我的Client包含数量Station child final class Client: PostgreSQLModel { var sta
目前我有一个表“ComponentAnalysis”和一个表“HistoryOfUse”,我正试图在 Fluent NHibernate 中进行映射。 一个成分分析应该只有1个使用历史,一个使用历史应
正如标题所说,我想知道我是否应该避免将 fluent nhibernate 用于生产代码,或者它是否足够成熟,可以“深入研究”? :) 最佳答案 FluentNHibernate API 尚未稳定下来
我正在尝试使用 Fluent NHibernate,我有几个问题。我发现缺少文档。 我知道 Fluent NHibernate/NHibernate 允许您自动生成数据库模式。人们通常只对测试/开发数
我正在使用 fluent-nhibernate 约定来映射我的实体: public class HasManyConvention : IHasManyConvention {
如何更改多列索引中的列顺序? IE: mapping.References(x => x.SomeReference).SetAttribute("index", "IX_index"); mappi
我需要像下面的代码一样创建一个外键: Create.ForeignKey().FromTable("TCGDocFiscalOpMedItem").ForeignColumn("IDCabecalho
我正在使用 Sharp 架构,并且在许多情况下都在实体中使用了值对象。这是一个明显的简单示例: public class Person : Entity { protected Person(
我是一名优秀的程序员,十分优秀!