gpt4 book ai didi

erlang - Erlang 服务器接口(interface)的工作示例

转载 作者:行者123 更新时间:2023-12-01 14:37:48 24 4
gpt4 key购买 nike

我正在尝试让 Erlang 的 Inets mode_esi 工作并运行一些功能。所以,到目前为止,我没有成功。有人可以发布一个关于如何运行 Inets 的最小示例,以便像 http:localhost:8099/esi/my_mod:foo 这样的 url 将调用方法 my_mod:foo/3

另外:我已经使用这些命令启动了 inets:

inets:start(),
inets:start(httpd, [{port, 8099}, {server_name, "localhost"}, {document_root, "."},
{server_root, "."}, {erl_script_alias, {"/esi", [my_esi, io]}}]).

模块是:

-module(my_esi).
-export([foo/3]).
foo(Sid, Env, In) -> mod_esi:deliver(Sid, ["bla"]).

但是浏览到 http://localhost:8099/esi/my_esi:foo 会导致错误消息。

最佳答案

为了澄清已经说过的话,我将给出一个工作示例(从头开始)。这是为了帮助那些从谷歌来到这里的人,主要是因为我就是这样找到它的;)

首先,创建模块:

# filename: my_esi.erl
-module(my_esi).
-export([foo/3,bar/3]).
foo(Sid, Env, In) -> mod_esi:deliver(Sid, ["foo"]).
bar(Sid, Env, In) -> mod_esi:deliver(Sid, ["bar"]).

保存,然后编译:

erlc my_esi.erl

您现在将拥有 my_esi.beam

然后从 bash 运行 shell

erl

在 shell 中键入以下内容:

inets:start().
{Httpd_State,Httpd_Pid} = inets:start(httpd, [{port, 8099}, {server_name, "localhost"}, {document_root, "."}, {modules,[mod_esi]},{server_root, "."}, {erl_script_alias, {"/esi", [my_esi, io]}}]).

这里重要的部分是:

{modules,[mod_esi]}

如果您需要其他模块,请通过将它们附加到列表来加载它们。

阐明如何/为什么:

我首先要承认,一开始它确实有点奇怪,而且文档没有我希望的那么有用。然而,我意识到:

modules()       -> [atom()]

变成:

{modules, [mod_access, mod_esi, ..., etc.]}

希望对大家有帮助:)

关于erlang - Erlang 服务器接口(interface)的工作示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291973/

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