我试图在谷歌和这个网站上搜索一个答案,但似乎我找不到任何地方,所以我决定问。
我计划将mochiweb用作我的网络服务器,现在我研究了几天。 我的问题很简单:
我可以在哪里添加或添加自定义配置? (例如数据库连接设置),所以mochiweb可以加载并处理它吗?
由于 溴
答案 0 :(得分:0)
我做了什么,是:
我在 mochiweb_sup.erl 中添加一行,如下所示,将我的配置文件夹作为将传递给 mochiweb_web.erl 模块的参数的一部分:
web_spec(Mod, Port) ->
WebConfig = [{ip, {0,0,0,0},
{port, Port},
%% my code is below
{docroot, something_deps:local_path(["priv", "www"])},
{custom_config, something_deps:local_path(["priv", "config"])}],
...
我读过 mochiweb_web.erl 模块中的其他路径,如下所示
start(Options) ->
{DocRoot, Options1} = get_option(docroot, Options),
%% my code is below
{ConfigPath, Options2} = get_option(custom_config, Options1),
%% loading my config file
{ok, FileHandler} = get_config_file(ConfigPath),
...
然后我通过创建如下函数来加载我的自定义配置文件:
get_config_file(ConfigPath) ->
FileName = "custom_config.txt",
case file:consult(filename:join([ConfigPath, FileName])) of
{ok, FileHandler} ->
{ok, FileHandler};
{error, Reason} ->
{error, Reason}
end.
就是这样!现在您可以根据需要进一步处理该配置文件。 如果你想处理配置,我建议你在开始(选项)块内处理它,然后在执行 mochiweb_http:start 功能之前处理它,所以如果你需要通过结果,您可以将其作为 mochiweb_http:start 中参数的一部分传递,但这意味着您需要在 mochiweb_http.erl中扩展 mochiweb_http:start 函数模块。
感谢。