美文网首页Vapor
Vapor系列教程 - Droplet

Vapor系列教程 - Droplet

作者: CaryZheng | 来源:发表于2016-08-29 17:42 被阅读351次

    Droplet 是一个比较综合的类,它负责路由的注册、服务的启动和中间件的添加等等。

    初始化


    编辑 main.swift

    import Vapor
    
    let drop = Droplet()
    
    drop.serve()
    

    使用默认参数配置的 Droplet 就被构造出来了。

    同时,也可以自定义构造 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] = []
        )
    

    环境


    定义

    Environment 是一个枚举类型,具体定义如下

    /**
        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)
            }
        }
    }
    

    分为 productiontestdevelopmentcustom 环境类型。

    使用

    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)")
    }
    

    可通过执行如下命令来指定当前环境类型

    • 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. 如果未明确指定环境的话,默认将以 development 环境执行。
    2. production 环境下可以过滤 Debug 日志以提高性能,建议最终部署的时候选择 production 环境。

    工作目录


    可通过 drop.workDir 获取当前工作目录。

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

    输出

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

    注意: 输出的路径由执行时所在路径决定。


    Go to Vapor系列教程 - 目录

    相关文章

      网友评论

        本文标题:Vapor系列教程 - Droplet

        本文链接:https://www.haomeiwen.com/subject/uhoxettx.html