2017-05-04 35 views
1

我們如何在Clack環境中訪問url的查詢參數?如何在Clack,Lucerne或Caveman中獲取網址查詢參數?

看起來他們是在一個瓣*request*對象,命名爲query-string,但我不知道如何訪問它們:瓣is not documentedthis doc並不清楚這一點。

順便說一句,如何探索粘液調試器中的*request*,而我正在休息呢?它只打印爲「CLACK:REQUEST」。

我在盧塞恩的doc或代碼中什麼也看不到,而這很遺憾,因爲我喜歡它的with-params宏。

更新:不要搜索更多,這個宏的作品非常好!

穴居人has something但常見的情況是不是很清楚我(有些發現像我這是a bit cumbersome(我正在嘗試盧塞恩))。

+3

[clack.request](http://quickdocs.org/clack/api#package-CLACK.REQUEST)中似乎有一個通用函數QUERY-PARAMETER。我沒有使用過或嘗試過,但它似乎應該工作。您應該可以使用[slime inspector](https://common-lisp.net/project/slime/doc/html/Inspector.html#Inspector)檢查對象。 – jkiiski

+0

感謝他們幫助的鏈接。 (我明白了,並在答案下面給出了詳細信息) – Ehvince

回答

2

在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)))

+0

感謝您的完整解釋。這對我來說是相似的。我沒有'lack.request',而是'clack.request','* requert *'對象是由盧塞恩給出的:'(clack.request:query-parameter lucerne:* request *)' – Ehvince

+0

, doc,以訪問給定的查詢參數:'(assoc「the-query-param」(clack.request:query-parameter lucerne:* request *):test'string =)'。我希望有一個框架可以提供幫助,比如盧塞恩的「帶參數」...... – Ehvince