未声明的类型'有效',没有这样的模块'验证'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未声明的类型'有效',没有这样的模块'验证'相关的知识,希望对你有一定的参考价值。
当我尝试键入时,我正在跟随Ray Wenderlich(https://videos.raywenderlich.com/screencasts/545-server-side-swift-with-vapor-basic-validation)(没有可编译的项目)的屏幕演员
let input: Valid<OnlyAlphanumeric> = try request.data["input"].validated()
并且编译器告诉我有效不存在。我试着寻找这个,发现Vapor不再像这样进行验证了,它使用了不同的行:https://stackoverflow.com/a/45363444/2305517:
guard let input = req.data["input"]?.string else { throw SomeError }
try input.validated(by: OnlyAlphanumeric())
但是字符串没有一个名为validated的函数(by :)
我尝试导入验证但该模块不存在。
有没有办法现在完成教程?验证似乎根本不在Vapor代码中。
答案
您需要将validation-provider包添加到您的项目中。您可以通过将包添加到Package.swift
文件中的依赖关系数组来执行此操作:
对于Swift 3,你可以添加:
.Package(url: "https://github.com/vapor/validation-provider.git", majorVersion: 1)
在Swift 4中,它看起来像这样:
.package(url: "https://github.com/vapor/validation-provider.git", from: "1.0.0"),
然后运行vapor update
,如果你使用Xcode,vapor xcode
。
然后,您可以将ValidationProvider
导入到您需要的文件中。
确保将提供者添加到config
:
try config.addProvider(ValidationProvider.Provider.self)
以上是关于未声明的类型'有效',没有这样的模块'验证'的主要内容,如果未能解决你的问题,请参考以下文章