web-dev-qa-db-ja.com

Vapor 3を使用したホスト名とポートの変更

Config/server.jsonファイルはVapor 3によって読み取られないようです。そのため、Vapor 3アプリがバインドするホスト名とポートを構成できません。

Vapor 3にはこのための別の方法がありますか?

12
Adam Young

現在、サーバーの実行時にポートとホスト名を設定できます。

Swift run Run --hostname 0.0.0.0 --port 9000

あります あるように見えますEngineServerの構造ベースの構成ですが、実行時にはまだ構成可能ではないと思います。 Vapor開発者が(Slackで)この質問に最後に回答したとき、コマンドライン引数メソッドが提案されたものでした。

16
tobygriffin

NIOServerConfigを使用できます。

let serverConfiure = NIOServerConfig.default(hostname: "0.0.0.0", port: 9090)
services.register(serverConfiure)

蒸気バージョンは3.0.3です

21
Passaction

Vapor 3バージョンを使用していることを確認してから、これを使用してください:

vapor run --hostname=0.0.0.0 --port=8080

パラメータの後に追加しないでください=の場合、次の苦情を受けます。

CommandError: Unknown command 8080

上記で推奨したとおりに実行すると、次のものが表示されます。

[Deprecated] --option=value syntax is deprecated.

代わりに--option value(=なし)を使用してください。ただし、コマンドは実行され、正常に動作します。

パラメータの後に=を付けずにこのコマンドを実行する方法を見つけることができませんでした。

4

私の0.02ドル

import Vapor

/// Called before your application initializes.
///
/// [Learn More →](https://docs.vapor.codes/3.0/getting-started/structure/#configureswift)
public func configure(
    _ config: inout Config,
    _ env: inout Environment,
    _ services: inout Services
    ) throws {
    if env == .development {
        services.register(Server.self) { container -> EngineServer in
            var serverConfig = try container.make() as EngineServerConfig
            serverConfig.port = 8989
            serverConfig.hostname = "192.168.31.215"
            let server = EngineServer(
                config: serverConfig,
                container: container
            )
            return server
        }
    }

    //Other configure code
}

Vapor 3.0.0 RC 2.4.1で完全に動作します

4
imike

コマンドラインフラグを使用してホスト名とポートを設定できます。

--hostname localhost --port 8080

3
Daniel Seither

実行スキームの「起動時に渡される引数」の編集も私にとってうまくいきました

enter image description hereenter image description here

1
gflo

EngineServerConfigservicesに登録することもできます。

configure.Swift、以下のコードを挿入します:

let myServerConfig = try EngineServerConfig.detect(from: &env, port: 8081)
services.register(myServerConfig)

これは3.0.0-rc.2.2

1
Honghao Zhang

IOS Guyが書いたものは、Vapor 3.3.1を少し変更する必要があります// Define Hostname & Port to listen to ... let myServerConfig = NIOServerConfig.default(hostname: "localhost", port: 8081) services.register(myServerConfig)

そう NIOServerConfig.defaultは、ホスト名とポートの2つのパラメーターでのみ使用でき、ポート番号を変更したい場合にのみ使用できます。

0
riskdoctor