我试图在谷歌和这个网站上搜索答案,但似乎我找不到任何地方,所以我决定问。
我打算使用 mochiweb 作为我的网络服务器,我研究了几天。我的问题很简单:
我可以在哪里放置或添加自定义配置?(例如数据库连接设置),所以 mochiweb 可以加载并处理它吗?
谢谢溴
我所做的是:
我在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.
就是这样!现在您可以根据需要进一步处理该配置文件。如果你想处理配置,我建议你在start(Options)块中处理它,在mochiweb_http:start函数执行之前,所以如果你需要传递结果,你可以将它作为参数的一部分传递给mochiweb_http :start,但这意味着您需要在mochiweb_http.erl模块中扩展mochiweb_http:start函数。
谢谢。