是Nitrogen賦予Erlang產生互動Web應用程式的能力。
寫在前頭
你會在這篇文章內容得到:
- 匆匆一瞥Nitrogen面貌,淺淺地瞭解Nitrogen有什麼用?又該用在什麼地方?
- 如何讓Nitrogen 2.0.3正常地運作在Inets。
卻不會從這裡得到:
- 如何寫Nitrogen的教學文件。
- 有關完整Nitrogen內容,因在下英文能力不佳,無法進行翻譯,只能以自己口吻將所知所學記錄下來,還是強烈建議到Nitrogen Project學習比較有系統化內容。
Nitrogen 是使用Erlang能快速開發互動Web應用程式的Web Framework。你可以從Introduction to Nitrogen學到更多有關Nitrogen的知識。
Nitrogen底層用到什麼技術?
- 支援任何作業系統 (MacOS、 Linux、Windows....等),只要能跑Erlang就都能執行Nitrogen。
- 必需跑在Mochiweb、Yaws、 Inets等Erlang Web Server。
- Client-Side使用jQuery和jQuery UI library作為強而有力的後盾。
Nitrogen有什麼特色?
- Event-Driven Development
主要是以Erlang 的pattern matching為基礎, 只要在Server-side寫個Erlang function,就能讓補捉事件變得非常簡單,輕易地處理使用者與應用程式互動過程。 - Brainlessly Easy Ajax
讓你寫一行程式碼就能輕輕鬆鬆用Ajax去更新或取代部份內容。 - Ridiculously Simple Comet
支援Comet機制(註1)。 - Complex Interfaces: Drag/Drop/Sort
提供豐富又易於操作的Web UI。 - Flexible Templating
簡單又強大的樣板功能。 - Data Binding
利用Erlang的data structure和pattern matching實現強大的Databinding功能,更方便顯示像是Blog文章或是comments這種重覆性內容。 - Erlang Power
充份運用Erlang特色在開發Web應用程式上面,包含hot code swapping、stability,以及scalability。
安裝Nitrogen的心路歷程
從官網下載Nitrogen2.0.3 for Windows on Inets,解縮後執行start.cmd,卻出現錯誤訊息,感覺Nitrogen官方釋出包好的Erlang版本很舊又怪怪的,所以~決定把v2.0.3的Source Code抓下來自己來弄, 原本認為Source Code下QuickStart版本可以用就好,就想說就此了之,無意間看到Introduction to Nitrogen的install內容,才又下定決心要把它安裝成功,那藉由這次機會,把步驟一一記錄下來提供參考:(以下是整個安裝Nitrogen2.0.3過程,包含失敗而去尋求解決之內容)
- 編輯rel\overlay_win\build.cmd,把ERTS改成安裝在自己電腦Erlang5.8.1路徑及安裝後erts位於nitrogen下路徑。
#找到這兩行
set ERTS="C:\Program Files\erl5.7.5\erts-5.7.5"
xcopy /y /e /s %ERTS%\*.* nitrogen\erts-5.7.5\
#修改成
set ERTS="C:\Program Files\erl5.8.1\erts-5.8.1"
xcopy /y /e /s %ERTS%\*.* nitrogen\erts-5.8.1\ - build.cmd其中有一行指令有用到tar,但是我的電腦是用7z.exe來解壓縮,所以~我把指令也一併改掉。
#用7z.exe來解壓縮:
tar -zxvf nitrogen.tar.gz -C nitrogen
#改成:
7z x nitrogen.tar.gz
7z x nitrogen.tar -onitrogen\ - 編輯rel\overlay_win\files\start.cmd,因這檔案是最後安裝完成後,執行Nitrogen的批次檔。
#將下列這幾行:
erts-5.7.5\bin\erl -pa %PA% -make
erts-5.7.5\bin\werl -pa %PA% -boot releases/2.0.3/start -embedded -config etc/app.config -args_file etc/vm.args
#改成與相對應的erts路徑:
erts-5.8.1\bin\erl -pa %PA% -make
erts-5.8.1\bin\werl -pa %PA% -boot releases/2.0.3/start -embedded -config etc/app.config -args_file etc/vm.args - 執行rel\overlay_win\build.cmd,自動就會去make,但事與願違,出現Erlang部份module版本找不到的錯誤訊息,因Nitrogen所要的版本太過老舊,與Erlang5.8.1不符合,看了一下把相關module要用的最新版本記下 。
- 編輯rel\overlay_win\nitrogen.rel,將有用到的module改成最新版本數。
{release,
{"nitrogen", "2.0.3"},
{erts, "5.8.1"},
[
{kernel, "2.14.1"},
{stdlib, "1.17.1"},
{inets, "5.5"},
{sasl, "2.1.9.2"},
{runtime_tools, "1.8.4.1"},
{nitrogen, "2.0.3"},
{simple_bridge, "1.0"},
{nprocreg, "0.1"}
]
}. - 再次執行build.cmd,就完成install的動作。
- 執行rel\overlay_win\nitrogen\start.cmd,再測試http://localhost:8000/,就可以看到Nitrogen成功地運作。若是不要8000 當port,可以從nitrogen\etc\inets_httpd.erlenv去修改port。
總結
這篇文章只是淡淡地介紹Nitrogen Web Framework,內容滿破碎零散,其主要是記錄自己在安裝過程點點滴滴,安裝後試著邊看Tutorial邊學著寫,感覺還挺好玩的,希望有機會能寫出完整版教學內容。
沒有留言:
張貼留言