参数标签 '(content:)' 不匹配任何可用的重载,swift,vapor,rest in vapor,using postgresql

Argument labels '(content:)' do not match any available overloads, swift ,vapor,rest in vapor ,using postgresql

错误参数标签 '(content:)' 与任何可用的 overloads.using postgresql 不匹配,而其余的在 vapor 中获取模型控制器的 json representable.The 语法如下,数据库内容的含义

import Foundation
import Vapor
import FluentProvider
import PostgreSQLProvider


final class dataPointStorage: Model, JSONRepresentable, NodeRepresentable {

//  var _data: dataPointProtocol?
//    var _data:[dataPointProtocol] = []
    let storage = Storage()
    var id: Node?
    var name:String
    var displayName:String
    var content:String
//    let temp = dataPointStorage()


    init(node:Node ,content: String?, displayName:String, name:String) {
        self.id = nil
        self.displayName = displayName
        self.name = name
    }

        static let idKey = "id"
        static let contentKey = "content"



    func forDataBase() {


        let array:[berichtDataPoint] = [intDataPoint(), boolDataPoint(), doubleDataPoint()]

        let _ = array[0] as! intDataPoint
        let _ = array[1] as! doubleDataPoint


        for point in array {

            switch point {
            case is  intDataPoint:
                print("int")
            case is doubleDataPoint:
                print("double")
            case is boolDataPoint:
                print("bool")
            default:
                print("error")
            }
        }

    }

  func makeRow() throws -> Row {
        var row = Row()
        try row.set("id", id)
        try row.set("displayName", displayName)
        try row.set("name", name)
        return row
    }

    init(row: Row) throws {
        id = try row.get("id")
        displayName = try row.get("displayName")
        name = try row.get("name")
    }

    func makeNode(context: Context) throws -> Node {
        return try Node(node: [
            "id": id,
            "displayName": displayName,
            "name": name
            ])
    }
}

extension dataPointStorage: Preparation {
    static func prepare(_ database: Database) throws {
        try database.create(self) { dataPointStorage in
            dataPointStorage.id()
            dataPointStorage.string("displayName")
            dataPointStorage.string("name")
            dataPointStorage.string("content")

        }
    }

    static func revert(_ database: Database) throws {
        try database.delete(dataPointStorage)
    }
}

extension dataPointStorage: JSONConvertible {
    convenience init(json: JSON) throws {
        try self.init(
       error here¶¶¶ content: json.get(dataPointStorage.contentKey)¶¶¶¶ error
        )
    }

    func makeJSON() throws -> JSON {
        var json = JSON()
        try json.set("id", id)
        try json.set("name", name)
        try json.set("displaName", displayName)
        try json.set("content", Content)

        return json
    }
}

我将 rest in vapor 的一般上下文视为 JSON 可表示,但没有得到解决这个简单错误的原因。

您似乎在尝试调用此 init?

init(node:Node ,content: String?, displayName:String, name:String)

如果是这种情况,您需要传入其余参数,因为它们没有可用的默认值:

convenience init(json: JSON) throws {
    try self.init(
        node: <VALUE>,
        content: json.get(dataPointStorage.contentKey),
        displayName: <VALUE>,
        name: <VALULE>
    )
}

这将解决您的问题。