Config/server.jsonファイルはVapor 3によって読み取られないようです。そのため、Vapor 3アプリがバインドするホスト名とポートを構成できません。
Vapor 3にはこのための別の方法がありますか?
現在、サーバーの実行時にポートとホスト名を設定できます。
Swift run Run --hostname 0.0.0.0 --port 9000
あります あるように見えますEngineServer
の構造ベースの構成ですが、実行時にはまだ構成可能ではないと思います。 Vapor開発者が(Slackで)この質問に最後に回答したとき、コマンドライン引数メソッドが提案されたものでした。
NIOServerConfigを使用できます。
let serverConfiure = NIOServerConfig.default(hostname: "0.0.0.0", port: 9090)
services.register(serverConfiure)
蒸気バージョンは3.0.3です
Vapor 3バージョンを使用していることを確認してから、これを使用してください:
vapor run --hostname=0.0.0.0 --port=8080
パラメータの後に追加しないでください=
の場合、次の苦情を受けます。
CommandError: Unknown command 8080
上記で推奨したとおりに実行すると、次のものが表示されます。
[Deprecated] --option=value syntax is deprecated.
代わりに--option value(=なし)を使用してください。ただし、コマンドは実行され、正常に動作します。
パラメータの後に=
を付けずにこのコマンドを実行する方法を見つけることができませんでした。
私の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で完全に動作します
コマンドラインフラグを使用してホスト名とポートを設定できます。
--hostname localhost --port 8080
EngineServerConfig
をservices
に登録することもできます。
configure.Swift
、以下のコードを挿入します:
let myServerConfig = try EngineServerConfig.detect(from: &env, port: 8081)
services.register(myServerConfig)
これは3.0.0-rc.2.2
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つのパラメーターでのみ使用でき、ポート番号を変更したい場合にのみ使用できます。