标签: vapor

JSON函数调用中的Swift Vapor框架差异

我的问题是Vapor JSON函数调用return JSON(["foo":"bar"])vs的区别是什么return try JSON(node: ["foo":"bar"])

两种变体都有效,正确的方法是什么?

将它们混合喜欢return JSON(node: ["foo":"bar"])return try JSON(["foo":"bar"])会令构建失败.

import Vapor

let drop = Droplet()

drop.get("json") { req in
  return JSON(["foo": "bar"])
}

drop.run()
Run Code Online (Sandbox Code Playgroud)

json function swift swift3 vapor

2
推荐指数
1
解决办法
247
查看次数

Swift Vapor服务器:如何在get请求中返回嵌套字典?

我开始使用Xcode中的Vapor来构建一个简单的服务器来支持我的应用程序.我试图了解如何正确构建我可以返回的JSON对象,例如在get请求中.

我有以下内容:

drop.get { request in
    let date:TimeInterval = Date().timeIntervalSince1970
    let dictionary:[String:String] = ["name":"e2","age":"3"]
    return try JSON(node: [
        "time":date,
        "t1" : "abc",
        "t2" : dictionary
        ])
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,它告诉我"参数标签(节点:)不匹配任何可用的重载"

如何构建包含字符串,数字和嵌套字典的JSON,如上所述?

ios vapor

2
推荐指数
1
解决办法
497
查看次数

Vapor的crypto.json - 部署安全吗?

我看到vapor,这crypto.json是用任何项目创建的一部分vapor toolbelt

{
    "hash": {
        "method": "sha256",
        "key": "password"
    },
    "cipher": {
        "method": "chacha20",
        "key": "passwordpasswordpasswordpassword",
        "iv": "password"
    }
}
Run Code Online (Sandbox Code Playgroud)

是否应更新任何部署?

encryption swift vapor

2
推荐指数
1
解决办法
492
查看次数

安装Vapor/MySQL后,无法为没有参数的'posix_spawn_files_actions_t'类型调用初始值设定项

我不断收到错误Cannot invoke initializer for type 'posix_spawn_files_actions_t' with no arguments安装蒸汽/ MySQL的,在这行代码后,系统会提示Terminal.swift:var fileActions = posix_spawn_file_actions_t().有谁知道什么可能提示这个?

mysql swift vapor

2
推荐指数
1
解决办法
181
查看次数

蒸汽 3,流畅的模型不会在数据库中创建原始

我正在尝试创建一个模型 ( MySQLStringModel) 并为其设置一个 id(String ?类型)。控制台中没有错误或任何其他消息,并且save(on: req)工作成功,但模型没有出现在数据库的表中。什么可能是错的?

func create(_ req: Request, person: Person) throws -> Future<Person> {
    return Person(id: person.id, name: person.name).save(on: req)
}
Run Code Online (Sandbox Code Playgroud)

Ps:当我使用带有Int?id 的MySQLModel 时一切正常 ,并且我不直接设置此 id(它使用 autoincreament 自动设置)

vapor

2
推荐指数
1
解决办法
322
查看次数

蒸气连接到SQLite数据库

我正在尝试使用SQLite设置Vapor 3项目。
configure.swift文件中,我具有与sqlite相关的以下设置:

try services.register(FluentSQLiteProvider())

...

// Get the root directory of the project
// I have verified that the file is present at this path
let path = DirectoryConfig.detect().workDir + "db_name.db"
let sqlite: SQLiteDatabase
do {
    sqlite = try SQLiteDatabase(storage: .file(path: path))
    print("connected") // called
} catch {
    print(error) // not called
    return
}

var databases = DatabasesConfig()
databases.add(database: sqlite, as: .sqlite)
services.register(databases)
Run Code Online (Sandbox Code Playgroud)

在数据库中,有一个名为的表posts,我想查询以下表并返回所有条目:

数据库表

这是Post实现内部/来源/应用/型号/

final class Post: Content {
    var …
Run Code Online (Sandbox Code Playgroud)

sqlite swift vapor vapor-fluent

2
推荐指数
1
解决办法
261
查看次数

Vapor + PostgreSQL + Nginx 构建在 Docker 上无法正常运行

我使用 docker 为一个项目编写 Vapor、PostgreSQL 和 Nginx,我的 docker-compose.yml 像这样:

version: "3.6"

services:
    vapor:
        build:
            context: ./vapor
        image: ${CURRENT_VAPOR_IMG}
        ports:
            - 8080:8080
        volumes:
            - ${HOST_ROOT}:${CONTAINER_ROOT}
        working_dir: ${CONTAINER_ROOT}
        tty: true
        entrypoint: bash
        networks:
            - x-net

    nginx:
        build:
            context: ./nginx
        image: ${CURRENT_NGINX_IMG}
        ports:
            - ${HOST_HTTP_PORT}:80
        volumes:
            - ${HOST_ROOT}:${CONTAINER_ROOT}
        networks:
            - x-net

    psql:
        image: ${CURRENT_DB_IMG}
        ports:
            - 5432:5432
        environment:
            - POSTGRES_DB=xxx
            - POSTGRES_USER=xxx
            - POSTGRES_PASSWORD=pass
        volumes:
            - ~/x/x-db:/var/lib/postgresql/data
    networks:
        - x-net

networks:
    x-net:
         driver: bridge
Run Code Online (Sandbox Code Playgroud)

运行docker-compose up启动所有容器后,进入到vapor的容器中build&&运行项目,控制台会提示错误:

NIO.ChannelError.connectFailed(NIO.NIOConnectionError(host: "localhost", port: 5432, dnsAError: nil, dnsAAAAError: nil, …
Run Code Online (Sandbox Code Playgroud)

vapor vapor-fluent

2
推荐指数
1
解决办法
452
查看次数

在 Xcode 中运行 Vapor 3 项目时无法加载 .env 文件

如何.env在运行RunVapor 项目的方案时强制 Xcode 加载文件?

--env production在方案配置中添加了运行参数,但它也没有改变行为。只有在 Xcode 环境变量下设置才有效(但这不是我的目标,因为当我在 Xcode 之外重建蒸汽项目时它们会被重置。

我已经定义了几个变量,但是在项目运行时它们无法加载(密钥不存在)

编辑:

更新问题以说明我使用 Vapor 3

xcode vapor

2
推荐指数
1
解决办法
647
查看次数

如何在 SwifQL 的 WHERE 子句中使用 LIKE

如何将 WHERE x LIKE $xyz 添加到查询构建器?

我开始

let searchQuery = try? request.query.get(String.self, at: "s")
...
query.where(\Talk.title, SwifQL.like(searchQuery))
Run Code Online (Sandbox Code Playgroud)

但是接下来我要搜索不区分大小写的字符串我有错误:

[ ERROR ] PostgreSQLError.server.error.scanner_yyerror: GET /testroute?s=Swift syntax error at or near "$8" (ErrorMiddleware.swift:26)

vapor vapor-fluent

2
推荐指数
1
解决办法
48
查看次数

在继续之前获取 [EventLoopF​​uture] 的所有值

我有一组值映射到多个承诺,每个承诺给我一个 EventLoopF​​uture。所以我最终得到了一个具有可变大小 [EventLoopF​​uture] 的方法,我需要所有响应都成功才能继续。如果其中一个或多个返回错误,我需要执行错误场景。

在继续成功路径或错误路径之前,如何等待整个 [EventLoopF​​uture] 完成?

future promise swift vapor swift-nio

2
推荐指数
1
解决办法
1097
查看次数

标签 统计

vapor ×10

swift ×5

vapor-fluent ×3

encryption ×1

function ×1

future ×1

ios ×1

json ×1

mysql ×1

promise ×1

sqlite ×1

swift-nio ×1

swift3 ×1

xcode ×1