问题标签 [hunchentoot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
common-lisp - SBCL:将 Hunchentoot 应用程序部署为可执行文件
我开始使用 SBCL Common Lisp 并想使用 Hunchentoot 开发一个小型 Web 应用程序。为了便于部署,我计划使用 sb-ext:save-lisp-and-die 将所有内容保存在二进制文件中,因为我可以忍受较大的输出大小。
对于可执行文件,您需要提供顶级函数。问题是当顶层函数返回时程序退出。我试图从可执行文件中启动 Hunchentoot,但程序在两秒钟后结束。
在停止程序之前,我怎样才能等到 Hunchentoot 被关闭(从请求内部)?我可以做一些事情,比如加入 Hunchentoot 接受者线程吗?或者我什至可以将 REPL 包含到可执行文件中以便能够进行实时调试?
common-lisp - Hunchentoot 处理程序更改另一个函数的定义
我写了一些代码来管理一个 postgresql 数据库,它正在控制台上运行。现在我希望通过 hunchentoot 把它放到我的内部网络上。
我使用 clsql 并将数据库代码打包为:
我导入了 my-database 包,当我使用这个处理程序时:
它显示html就好了。但是这个处理程序:
抛出错误:
我注意到当我(my-database:new-patient )
在 REPL 上键入时,emacs 命令 minibuffer 显示(my-database:new-patient &key name gender height weight)
. 这&key
部分在我看来很可疑。因此我切换到 my-database 文件,做了 slime-eval-last-expression-in-repl,它更正了 emacs 命令 minibuffer 显示。
但是这一次,我得到了以下错误:
并且重新评估 hunchentoot 处理程序导致 emacs 命令 minibuffer 再次显示 & 键。最后,我将处理程序代码更改为(my-database:new-patient :name name :gender gender :height height :weight weight)
,这会引发此错误:
可能是什么原因?
common-lisp - 以字节为单位的文件大小不等于 UTF-8 编码文件中的字符数
我尝试了常见的 lisp hunchentoot-test。
当我上传带有非拉丁符号的 utf-8 文本文件时,上传文件的长度增加了。在完成文件中,插入了每个非拉丁符号的附加字节。我不明白为什么。上一个实验是在 digitalocean 上刚刚启动 ubuntu 系统。安装 emacs、clisp 和 slime。在 swank 中执行:
(ql:quickload "hunchentoot")
(ql:quickload "hunchentoot-test")
(hunchentoot:start (make-instance 'hunchentoot:easy-acceptor:port 4242))
在 127.0.0.1:4242/hunchentoot/test/upload.html 上看到问题就足够了
emacs - 如何防止粘液在某些错误上启动 sldb?
从连接了 Slime 的 Clack/Hunchentoot 提供大文件时,我有时会看到类似 SB-IMPL::SIMPLE-STREAM-PERROR "Couldn't write to ~s" 之类的错误消息......这些是由浏览器过早断开连接引起的(这完全可以)。问题是每次发生时,SLDB都会弹出。这很烦人。
有没有办法可以抑制 SLDB 中的某些错误,例如上述?我仍然希望在错误日志中看到它们,但绝对不是在 SLDB 中。
common-lisp - Hunchentoot 重定向列表
我网站的 URI 结构最近发生了巨大变化,我需要将所有旧页面重定向到相应的新页面。我有一个所有新旧 URI 对的点列表。目前我正在尝试为每个循环定义简单的处理程序:
也许有更好的方法。假设 define-easy-handler 是正确的,它需要每个简单处理程序的函数符号。我尝试了以下方法无济于事:
- 将 (gensym) 放置在需要函数符号的位置
- 使用列表而不是点列表并在需要符号的地方调用(第一次重定向)
- 在整个事物周围放置一个 quasiquote 并在周围放置一个 unquote(第一个重定向)
什么是实现这一目标的好方法?
common-lisp - Hunchentoot 测试 webserver usocket 连接被拒绝错误
尝试启动 Hunchentoot 测试网络服务器,但 usocket 在 Mac OSX El-Capitan、SBCL 1.1.6.0-3c5581a 中引发连接错误
请帮忙...
macros - common lisp 在宏内展开列表
我正在尝试为 hunchentoot 服务器在 common lisp 中编写类似于 ruby on rails 的路由文件,即
示例控制器文件如下所示:
这样做的原因是将控制器与视图分开。
所以,我有以下功能:
和宏:
我的问题是我无法正确传递参数。参数应该如何在路由宏中?
或者,是否有更好的方法来完成此任务,或者是否有一个在 hunchentoot 之上工作的库(我找到了一些但不知道选择哪个,所以我开始编写自己的)。
非常感谢您!
common-lisp - hunchentoot 中的特殊变量
目前,我正在使用 hunchentoot 为我自己的需要开发 2 个基于 Web 的工具。
在开始 hunchentoot 之前,我想用 let 设置一些特殊变量,以便在 hunchentoot 运行时可以使用这些值。
喜欢 :
但是,一旦处理程序收到发票,它们就不会再出现在 let 中,并且db-path会回退到其全局状态(即 nil)。
目前我正在通过在每个处理程序中编写 let 来解决这个问题。
但是,我想要一种更通用的方法,以便能够在一个运行时运行具有不同db-path的两个应用程序。
是否可以以某种方式设置db-path,使其对 hunchentoot 的一个实例有效,而对另一个实例无效?
使用的环境是 Debian Jessie 上的 SBCL 1.2.4。
common-lisp - hunchentoot有没有办法在路径之前获取url的一部分
如果客户提出要求,proto://hostname:port/path
我想得到proto://hostname:port
.
我可能错过了一些东西,但现在我能想到的唯一方法是使用类似的东西
是否有任何特定的功能/方法或更简单的方法?
主要原因是返回一个我必须解析server-protocol
的关键字符号(例如)。:http/1.1
我当然可以,但它可能已经存在,我可能错过了。