Vapor 3似乎没有读取Config / server.json文件,因此我无法配置Vapor 3应用程序绑定的主机名和端口。
Vapor 3有不同的方法吗?
答案 0 :(得分:20)
您可以使用NIOServerConfig。
let serverConfiure = NIOServerConfig.default(hostname: "0.0.0.0", port: 9090)
services.register(serverConfiure)
蒸汽版本为3.0.3
答案 1 :(得分:13)
目前,您可以在运行服务器时设置端口和主机名:
swift run Run --hostname 0.0.0.0 --port 9000
EngineServer
有appears to be基于结构的配置,但我认为它在运行时尚不可配置。上一次Vapor开发人员回答了这个问题(在他们的Slack上),命令行参数方法是建议的。
答案 2 :(得分:6)
在蒸汽4中
app.http.server.configuration.hostname = "127.0.0.1"
app.http.server.configuration.port = 8000
第3蒸气
services.register(NIOServerConfig.default(hostname: "127.0.0.1", port: 8000))
答案 3 :(得分: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 :(得分:4)
请确保您使用的是Vapor 3版本,然后使用:
vapor run --hostname=0.0.0.0 --port=8080
如果您未在参数后添加 =
,您将收到以下投诉:
CommandError: Unknown command 8080
如果您按照我上面的建议行事,您将收到:
[Deprecated] --option=value syntax is deprecated.
请使用--option value(with no =),但该命令将运行并正常工作。
我无法找到在参数之后没有=
的情况下运行此命令的方法。
答案 5 :(得分:2)
您可以使用命令行标志设置主机名和端口:
--hostname localhost --port 8080
答案 6 :(得分:1)
您也可以在EngineServerConfig
注册services
。
在configure.swift
中,插入以下代码:
let myServerConfig = try EngineServerConfig.detect(from: &env, port: 8081)
services.register(myServerConfig)
这适用于3.0.0-rc.2.2
答案 7 :(得分:0)
答案 8 :(得分:0)
蒸气中:稳定的3.1.10
打开:configure.swift
在:public func configure()
添加以下内容:
// Define Hostname & Port to listen to ...
let myServerConfig = NIOServerConfig.default(hostname: "servers-hostname.local", port: 8080)
services.register(myServerConfig)