Vapor系列教程 - Droplet

Swift國(guó)內(nèi)社區(qū): SwiftMic


Droplet 是一個(gè)比較綜合的類(lèi),它負(fù)責(zé)路由的注冊(cè)、服務(wù)的啟動(dòng)和中間件的添加等等。

初始化


編輯 main.swift

import Vapor

let drop = Droplet()

drop.serve()

使用默認(rèn)參數(shù)配置的 Droplet 就被構(gòu)造出來(lái)了。

同時(shí),也可以自定義構(gòu)造 Droplet

public init(
        // non-providable
        arguments: [String]? = nil,
        workDir workDirProvided: String? = nil,
        config configProvided: Config? = nil,
        localization localizationProvided: Localization? = nil,

        // providable
        server: ServerProtocol.Type? = nil,
        sessions: Sessions? = nil,
        hash: Hash? = nil,
        console: ConsoleProtocol? = nil,
        log: Log? = nil,
        client: ClientProtocol.Type? = nil,
        database: Database? = nil,

        // database preparations
        preparations: [Preparation.Type] = [],

        // providers
        providers providerTypes: [Provider.Type] = [],
        initializedProviders: [Provider] = []
    )

環(huán)境


定義

Environment 是一個(gè)枚舉類(lèi)型,具體定義如下

/**
    Represents the current environment the
    droplet is running in. This information
    can be used to conditionally show debug or testing information.
*/
public enum Environment: Equatable {
    case production
    case test
    case development
    case custom(String)

    init(id string: String) {
        switch string.lowercased() {
        case "production", "prod":
            self = .production
        case "test":
            self = .test
        case "development", "dev":
            self = .development
        default:
            self = .custom(string)
        }
    }
}

分為 production 、 test 、developmentcustom 環(huán)境類(lèi)型。

使用

let env = drop.config.environment
if .production == env {
    print("environment = production")
} else if .test == env {
    print("environment = test")
} else if .development == env {
    print("environment = development")
} else {
    print("environment = \(env)")
}

可通過(guò)執(zhí)行如下命令來(lái)指定當(dāng)前環(huán)境類(lèi)型

  • production
vapor run serve --env=production

vapor run serve --env=prod

輸出

environment = production

  • test
vapor run serve --env=test

輸出

environment = test

  • development
vapor run serve --env=development

vapor run serve --env=dev

輸出

environment = development

  • ** custom**
vapor run serve --env=myenv

輸出

environment = myenv

其中, myenv 也可以是其它任意字符串。

注意

  1. 如果未明確指定環(huán)境的話(huà),默認(rèn)將以 development 環(huán)境執(zhí)行。
  2. production 環(huán)境下可以過(guò)濾 Debug 日志以提高性能,建議最終部署的時(shí)候選擇 production 環(huán)境。

工作目錄


可通過(guò) drop.workDir 獲取當(dāng)前工作目錄。

print("workDir = \(drop.workDir)")

輸出

workDir = /Users/Cary/Documents/Swift/Vapor/Project/vapor_test/

注意: 輸出的路徑由執(zhí)行時(shí)所在路徑?jīng)Q定。


Go to Vapor系列教程 - 目錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容