草庐IT

Vapor-Fluent

全部标签

swift - Heroku 上的 Vapor 3 : REPL?

有没有办法在Vapor3中访问Heroku上的REPL?如果是,怎么办?我试过herokurunswiftrun--repl,但Heroku回复:bash:swift:commandnotfound。 最佳答案 不幸的是,这是不可能的。Swift工具链不是应用程序镜像(slug)的一部分,因为它会超过大小限制,并且在运行应用程序本身时不会添加任何有用的东西。如果您想在Linux上试验Swift而不想自己安装Linux,我建议您安装Docker。设置完成后,以下命令将为您提供REPL:dockerrun--rm-it--privile

swift - Vapor 3 : when returning a model, 如何轻松返回子对象

我有一个模型广告系列,它有多个月份:finalclassCampaign:Content,SQLiteModel{varid:Int?varname:Stringvarmonths:Children{returnchildren(\.campaignID)}}当我想以最基本的方式返回事件时,它不包括月份,因为据我所知,计算属性不是Codable。funcgetOneHandler(_req:Request)throws->Future{returntryreq.parameters.next(Campaign.self)}所以,我创建了一个新结构来保存我想要返回的完整对象structF

swift - 如何为 vapor web 框架编写中间件?

使用工具箱命令创建了一个新项目:vapornewprojectname在main.swift文件中我添加了中间件代码:importVaporimportHTTPfinalclassVersionMiddleware:Middleware{funcrespond(torequest:Request,chainingTonext:Responder)throws->Response{letresponse=trynext.respond(to:request)response.headers["Version"]="APIv1.0"print("notprinting")returnres

swift - 我应该在 Vapor 项目中的什么地方添加自己的 Markdown 文件?

我想添加我自己的Markdown文件,一个名为profile.md的文件。但是,我不知道应该在我的Vapor项目中的什么地方添加该文件,该项目是在Xcode中开发的。我尝试将它添加到Sources/或者只是根目录,但是它不能被Bundle.main.url(forResource:)函数搜索,比如:guardleturl=Bundle.main.url(forResource:"profile",withExtension:".md")else{...}此外,我发现我已经在CopyBundleResources选项卡下添加了它。在普通应用程序(适用于iOS和macOS)中,上述功能正常

json - Vapor 3 内容到 JSON 到字符串

我正在编写一个Vapor3项目,它以键值对的形式写入FoundationDB数据库。我有以下代码,它使用一个名为Country的结构来扩展内容。我想将国家/地区数据保存为JSON字符串,然后将其转换为要保存的字节。funccreateCountry(req:Request,country:Country)throws->Future{returntryreq.content.decode(Country.self).map(to:Country.self){countryinletdbConnection=FDBConnector()letCountryKey=Tuple("iVend

swift - 我如何处理 Vapor 3 中的密码散列加盐?

我正在构建一个基本的身份验证设置,类似于它在Vapor的auth-template模板(来自here)中的使用方式。我已按照与模板中相同的方式设置所有内容。不过,我想加盐。我可以在创建时为用户生成盐:staticfunccreate(_req:Request,newUserRequestuser:CreateUserRequest)throws->Future{returnUser.query(on:req).filter(\.username==user.username).first().flatMap{existingUseringuardexistingUser==nilels

swift - 如何使用 Vapor 响应图像?

我只想有一个ControllerAction,基本上与直接通过Public/文件夹访问图像相同。不同之处在于路线可以是您想要的任何东西,返回的图像将是在Controller函数内部确定的图像。但是如何创建适当的响应呢?我的方法是这样的:importVaporfinalclassImageController{funcread(_req:Request)throws->Future{letdirectory=DirectoryConfig.detect()letpromise=req.eventLoop.newPromise(Data.self)req.eventLoop.execute

swift - 使用 vapor 设置 SSL

我有这样的配置{"default":{"port":"443","host":"example.com","securityLayer":"tls","tls":{"certificates":"files","certificateFile":"/etc/letsencrypt/live/example.com/fullchain.pem","privateKeyFile":"/etc/letsencrypt/live/example.com/privkey.pem"}}}在drop启动时,它会打印出这条控制台消息:NoTLSsignaturesupplied,defaultingt

swift - 尝试使用 CLI 将 Vapor 应用程序推送到 Heroku 失败

我有一个Vapor应用程序,我想将其推送到Heroku。我使用vaporherokuinit来初始化Heroku项目。现在它在Heroku上,我希望能够使用vaporherokupush将更改推送到Heroku。但每次我从VaporCLI运行该命令时,我都会得到以下信息:Error:spawnProcess谁能告诉我为什么这可能会失败,或者能为我指明正确的方向? 最佳答案 这个问题最近开始出现,我们不确定它是从哪里来的。同时,您可以关注这个问题:https://github.com/vapor/toolbox/issues/108解

swift - Vapor 一次上传多个文件

我想在一个POST请求中上传多张图片。目前,我的请求中与文件上传相关的部分正在获取一个文件,如下所示:returntryreq.content.decode(File.self).flatMap(to:Image.self){(file)intryfile.data.write(to:URL(fileURLWithPath:DirectoryConfig.detect().workDir+localImageStorage+file.filename))returntryImage(userID:user.requireID(),url:imageStorage+file.filena