【问题标题】:How to get url query parameters in Clack, Lucerne or Caveman?如何在 Clack、Lucerne 或 Caveman 中获取 url 查询参数?
【发布时间】:2017-05-04 09:10:25
【问题描述】:

我们如何在 Clack 环境中访问 url 的查询参数?

看起来它们位于名为 query-string 的 clack *request* 对象中,但我不知道如何访问它们:clack is not documentedthis doc 对此不清楚。

顺便说一句,例如,当我在休息时,如何在 slime 的调试器中探索*request*?它只打印为“CLACK:REQUEST”。

我在 Lucerne 的 doc 或代码中什么也没看到,这很遗憾,因为我喜欢它的 with-params 宏。

更新:不要再搜索了,这个宏很好用!

穴居人has something,但我不太清楚常见的情况(有些人发现像我一样是a bit cumbersome(我正在尝试卢塞恩)。

【问题讨论】:

  • clack.request 中似乎有一个通用函数QUERY-PARAMETER。我没有使用过 clack 或尝试过它,但它似乎应该可以工作。您应该能够使用slime inspector 来检查对象。
  • 感谢他们提供的链接。 (我明白了,并在答案下方给出详细信息)

标签: common-lisp


【解决方案1】:

在 Ningle 中,我可以通过 (lack.request:request-query-parameters ningle:*request*) 获取所有查询参数的关联列表。可能对你有用。

要检查帧中的请求,只需在光标在帧上时点击“i”并输入类似ningle:*request* 的内容。我看到这样的请求:

#<LACK.REQUEST:REQUEST {100B2EDB73}>
--------------------
The object is a STRUCTURE-OBJECT of type LACK.REQUEST:REQUEST.
ENV: (:RAW-BODY #<FLEXI-STREAMS::VECTOR-INPUT-STREAM {100B2ED2D3}> :REQUEST-METHOD :GET :SCRIPT-NAME "" :SERVER-NAME "ws-dashb$
METHOD: :GET
SCRIPT-NAME: ""
PATH-INFO: "/some-path"

并且可以深入了解每个插槽的价值。

可能取决于优化声明。如果不起作用,请在加载应用程序之前尝试输入(declaim (optimize (debug 3)))

【讨论】:

  • 感谢您的完整解释。这对我来说很相似。我没有lack.requestclack.request*requert* 对象是卢塞恩提供的:(clack.request:query-parameter lucerne:*request*)
  • 如在 Ningle doc 中,访问给定的查询参数:(assoc "the-query-param" (clack.request:query-parameter lucerne:*request*) :test 'string=)。我希望有一个框架可以提供帮助,就像 Lucerne 的 with-params...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 2023-02-21
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 2016-06-25
  • 2017-02-01
相关资源
最近更新 更多