Пользовательская конфигурация Mochiweb
Я пытался найти ответ в Google, и этот сайт, но, кажется, я не могу найти нигде, поэтому я решил спросить.
Я планирую использовать mochiweb в качестве своего веб-сервера, и я изучал его в течение нескольких дней. Мой вопрос прост:
Где можно поставить или добавить нестандартную конфигурацию? (например, настройка соединения с базой данных), чтобы mochiweb мог загрузить и обработать его?
Спасибо Бромо
1 ответ
То, что я сделал, было:
- Я создаю новую папку внутри priv, называемую: config
- Я положил туда свой конфигурационный файл
Я добавляю строку в 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:start в модуле mochiweb_http.erl.
Благодарю.