手把手教你搭建你的第一个Swift - Vapor服务器[超详细!!!]

swift vapor   哈哈哈哈。。。。。不介绍了。自己的服务器,就从这里开始吧。


一、生成vapor服务器工程,请参照:官方文档

这里我还是写一下吧:

安装:(Xcode8)

在终端上运行

$ curl -sL check.vapor.sh | bash

$ curl -sL toolbox.vapor.sh | bash

$ vapor --help

新建工程:

$ cd   /Users/jiangkui/Desktop/Demo(请找个放代码的位置)

接着:

$ vapor new HeHeVapor1

这可能需要等待一下下。。



在Xcode上打开这个工程,并且可以直接编译运行。先cd 到工程文件中

然后:

$ vapor xcode -y

打开Xcode后瞅瞅目录:

嗯,Config的扩展,Droplet的扩展,Routes也是个扩展有木有。

看看代码:前俩没啥好讲的吧,关键在Routes,原来Get Post请求是在这里啊。

下面是VC,Models,具体啥用,在这里就不细细分析了,

先看main

初始化一个Config。调用了一个扩展方法setup(),进去瞅瞅:应该是一些初始化数据库关联Models的,不管了

接着初始化了个Droplet。调用了setup(),再去看看:哦,定义了方法。

进方法看看:原来就是Routes.swift。

官方demo就是这样了,咱们跑一下??嗯嗯,跑一下

选择运行



ok,run就成功了。这一部分,几乎没啥好介绍的,成功率高达99.9%

如果出现报错,无法运行,请重复vapor xcode -y  也可以重复所有步骤。

咱们来一波:http://localhost:8080 或者  0.0.0:8000


咦,怎么啥也没有?回头看一下Routes,如下  添加

在访问,欧了,出现了“你好”。接着访问http://localhost:8080/hello,结局已经可以预料。Post请求不外于是。

二、上传服务器heroku 

我们的服务器好像已经搞定了呢,但是怎么能一直localhost呢,太没有挑战性了呢。

于是乎我们想体验一下上传服务器的刺激,极大大一部分同学到这里gg了,为啥呢,发现所有的简书都上传heroku,结果heroku连注册都不行------>请翻墙。(163.com,qq.com请换邮箱,你要用foxmail越过,哈哈哈)<这里我为啥也用heroku,因为我也是按照这些大神的路跑一趟嘛>

闲话少说,翻完几座墙,越过数条河,终于见证到了奇迹的时刻,over注册完了。

首次建立heroku,打开终端,cd到项目目录:

$ heroku login

$ git init

$ git add .

$ git commit -am "xxx"

$ vapor heroku init

/****/

1.Would you like to provide a custom Heroku app name?

你需要自定义你的Heroku app名字吗,当然需要,输入Y

2.Custom app name?

'你的APP名字,例HeHeVapor1'

如果这个名字可以用,接下来的步骤中会返回一个端口连接例如:https://hehevapor1.herokuapp.com/ | https://git.heroku.com/hehevapor1.git

Would you like to deploy to a region other than the US?你愿意把它部署到除美国以外的地区吗?

N

3.Would you like to provide a custom Heroku buildpack?

是否需要编译空间 输入N,

4.Are you using a custom Executable name?

N

5.Would you like to push to Heroku now?

Y

稍等会,推送完成之后就可以访问你的远程heroku服务器了

如果出现错误,请重复vapor heroku init

时间有点长,吃顿饭先。

欧, no!终端不是说ok了吗!!!我迫不及待的访问了一下链接,为啥这个样子????

内心充满了fk,在终端里heroku logs一下,查下日志,fk看不懂。去自己的heroku看下项目日志,fk一样的东东不懂啊。但是,其他大神都开讲添加PostgreSQL 数据库了。是不是因为没有数据库的缘故呢?

先不管了,试试水先。

三、heroku添加数据库:

添加数据库

$ heroku addons:create heroku-postgresql:hobby-dev

查询数据库链接《这里需要记录一下次数据库链接请保存好,要用哟》

$ heroku config -s | grep DATABASE_URL

heroku搞定,那么我们的项目是否需要调整呢,废话。

xcode打开项目:

其实项目好像已经有了sql,但是我并没有尝试,先PostgreSql,毕竟有教程吗。

打开Package.swift

在dependencies数组里添一个

.Package(url: "https://github.com/vapor-community/postgresql-provider.git", majorVersion: 2, minor: 0)

<注意这是个数组,别少写了逗号,哈哈哈>

我们关闭xcode ,打开终端,切换目录,再来一次 vapor xcode -y

ok,搞定。接着打开蓝色的文件夹的fluent.json,看到"deiver"了吗?value换成"postgresql"

然后添加一个文件:postgresql.json如图:


这是个字典,后面就是刚刚让你保存的数据库链接。相信,你还记得。不记得,请重新来一遍查询。

接着,咱们打开Config+Setup.swift

看到import FluentProvider了吗,这玩意儿有啥用,先不管了。

换成import PostgreSQLProvider

下面有个func setupProviders()

try的内容换成 addProvider(PostgreSQLProvider.Provider.self)

不要问我为什么,我刚刚也是一知半解。

ok搞定了,咱们在本地run一下,咦,居然没有问题耶,咱们再上服务器一波

打开终端,cd到项目目录

四、更新heroku的服务器代码。

$ git commit -am "加了新东西"

$ git push heroku master

搞定,等个几分钟,在请求看看。。。

当然也有小伙伴居然提交报错,一堆难以理解的错误,有种很粗暴的方法,重新创建一个新仓库。从heroku login下一步开始。

ok,同学们,经过兄弟一通瞎搞,终于搞定了自己的vapor。

注:可能有很多疑问,为啥添加数据库,就能上传服务器了呢?FluentProvider
是什么呢?不用PostgreSQLProvider行不行呢?还有那些controller里面那一坨有没有用呢?等等这些问题,暂时我也无法回答。谢谢喜欢探索的,给予答案。关于PostgreSQLProvider的许多用法,暂时也不是很清楚,希望有大神有好的案例。有兴趣的可以瞅一眼本人的探索Demo----《Vapor1 》,已经写了注册、登录、修改密码,这些小功能。


五、是不是少了点什么?

没错,有童鞋是看着vapor的官方文档来的,那文档真心没有一个由浅入深的完整过程。不知道会碰多少壁。但是这并不重要,重要的是为什么 七牛 没有swift的上传图片的服务器代码,我就日了狗了。连go的服务器上传图片代码都有,居然没有swift,脑阔疼啊。这不重要。重要的是,我想上传头像啊。好了不扯淡,咱们接着研究例如:数据库 啥的高级用法吧。。。下篇文章再见。本人的测试小demo

当然还有(Perfect框架) 等着童鞋们一一尝试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容