gpt4 book ai didi

debugging - 从 REPL 访问 Hunchentoot 请求对象以进行调试

转载 作者:太空宇宙 更新时间:2023-11-03 18:35:03 24 4
gpt4 key购买 nike

我发现在为 Hunchentoot 编码时,增量开发往往会中断。

例如,我可能会编写一个由几个函数组成的网页。如果这些内部函数之一包含对 - 比如说 - hunchentoot:post-parameters* 的调用,那么我就无法轻松地在 REPL 中测试该函数。它会出错,因为 *request* 不存在,除非该页面被网络客户端调用。

如果存在一些函数或其他源,这样我就可以测试我的函数,那就太好了:

>(let* ((*request* (get-previous-request-from-somewhere))
(*session* (slot-value *request* 'hunchentoot:session)))
(my-function <whatever params>))

它或类似的东西是否存在?我是否忽略了更好的调试方法?

最佳答案

我的临时解决方案如下所示:

(defparameter *save-last-request* t)
(defvar *last-request* nil)

(defun store-request ()
(when *save-last-request*
(setf *last-request* *request*)))

(defmacro with-last-request (&body body)
`(let* ((*request* *last-request*)
(*session* (slot-value *request* 'hunchentoot:session)))
,@body))

注意每个处理程序都需要调用 store-request

关于debugging - 从 REPL 访问 Hunchentoot 请求对象以进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22903139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com