Mochiweb自定义配置

时间:2012-06-11 14:25:58

标签: web erlang mochiweb

我试图在谷歌和这个网站上搜索一个答案,但似乎我找不到任何地方,所以我决定问。

我计划将mochiweb用作我的网络服务器,现在我研究了几天。 我的问题很简单:

我可以在哪里添加或添加自定义配置? (例如数据库连接设置),所以mochiweb可以加载并处理它吗?

由于 溴

1 个答案:

答案 0 :(得分:0)

我做了什么,是:

  1. 我在priv中创建了一个新文件夹,名为:config
  2. 我把配置文件放在那里
  3. 我在 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"])}],
    ...
    
  4. 我读过 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),
    ...
    
  5. 然后我通过创建如下函数来加载我的自定义配置文件:

    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.
    
  6. 就是这样!现在您可以根据需要进一步处理该配置文件。 如果你想处理配置,我建议你在开始(选项)块内处理它,然后在执行 mochiweb_http:start 功能之前处理它,所以如果你需要通过结果,您可以将其作为 mochiweb_http:start 中参数的一部分传递,但这意味着您需要在 mochiweb_http.erl中扩展 mochiweb_http:start 函数模块。

    感谢。