1

我在处理多个参数时遇到了麻烦。我可以通过一个,但不确定是否可以通过多个。我在网页中有这个 JS 代码:

$.getJSON('api/vendor/countryVendors/'+country+'&'+resourceType,    function(result){} 

我的蒸汽控制器中的以下内容:

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 代码或两者都有

4

1 回答 1

3

看起来您正在尝试传入与路由路径参数不同的查询字符串参数。在这种情况下,两个片段都是错误的。

查询字符串参数是附加到 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...
}
于 2018-09-06T19:12:48.573 回答