具有多个参数的蒸汽
Vapor with multiple parameters
我在处理多个参数时遇到问题。我可以通过一个,但不确定是否要通过多个。我在网页中有这个 JS 代码:
$.getJSON('api/vendor/countryVendors/'+country+'&'+resourceType, function(result){}
以及我的 Vapor 控制器中的以下内容:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.parameters.next(String.self)
let resourceTypeString = try req.parameters.next(String.self)
不确定我创建的 URL 是错误的还是我的 Swift 代码或两者都是错误的
您似乎正试图传入 query-string parameters, which are different from the route path parameters。在这种情况下,两个片段都是错误的。
查询字符串参数是 key/value 对,附加到 URL 的末尾,如下所示:
/my/url/path?key=value&key1=value1
因此您的 JS 代码中的 URL 应该如下所示:
'api/vendor/countryVendors?country='+country+'&resourceType='+resourceType
要从传递给路由处理程序的 URL 获取查询字符串参数,您可以使用 request.query
属性 和 .get(_:at:)
方法:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.query.get(String.self, at: "country")
let resourceTypeString = try req.query.get(String.self, at: "resourceType")
// Other code...
}
我在处理多个参数时遇到问题。我可以通过一个,但不确定是否要通过多个。我在网页中有这个 JS 代码:
$.getJSON('api/vendor/countryVendors/'+country+'&'+resourceType, function(result){}
以及我的 Vapor 控制器中的以下内容:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.parameters.next(String.self)
let resourceTypeString = try req.parameters.next(String.self)
不确定我创建的 URL 是错误的还是我的 Swift 代码或两者都是错误的
您似乎正试图传入 query-string parameters, which are different from the route path parameters。在这种情况下,两个片段都是错误的。
查询字符串参数是 key/value 对,附加到 URL 的末尾,如下所示:
/my/url/path?key=value&key1=value1
因此您的 JS 代码中的 URL 应该如下所示:
'api/vendor/countryVendors?country='+country+'&resourceType='+resourceType
要从传递给路由处理程序的 URL 获取查询字符串参数,您可以使用 request.query
属性 和 .get(_:at:)
方法:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.query.get(String.self, at: "country")
let resourceTypeString = try req.query.get(String.self, at: "resourceType")
// Other code...
}