2012-06-11 85 views
0

我試圖搜索在谷歌和這個網站的答案,但似乎我找不到任何地方,所以我決定問。Mochiweb自定義配置

我打算使用mochiweb作爲我的網絡服務器,現在我研究了幾天。 我的問題很簡單:

我可以在哪裏放置或添加自定義配置? (例如數據庫連接設置),所以mochiweb可以加載並處理它?

感謝 溴

+1

親愛的大家,不用回答這個問題,我已經弄明白了,如何擴展mochiweb,並添加自定義配置來啓動服務器。 –

+0

如果有人可以刪除此線程...歡迎。 –

+1

你應該用解決方案寫一個答案,並且接受它:這樣別人可以從你的努力中學習! ;) –

回答

0

我所做的,就是:

  1. 我裏面創建私法一個新文件夾,名爲:配置
  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. 
    

Th at's it!現在你可以進一步處理該配置文件,只要你喜歡。 如果你想處理配置,我建議你在開始(選項)區塊內,並在之前處理它mochiweb_http:start函數執行,所以如果你需要傳遞結果,你可以傳遞它的一部分的參數mochiweb_http:start,但這意味着您需要擴展mochiweb_http:start函數mochiweb_http.erl模塊。

謝謝。