1、项目是应用程序(application)
Nitrogen 编程,是从创建项目开始的。从Erlang/OTP的角度看,项目是个应用程序,即在Erlang环境中运行的程序单元。
Erlang应用程序模块,叫做“响应模块”(callback module直译成“回调模块”,觉得别扭)。模块中定义程序的启动和停运函数。
例如,项目quickstart中的模块quickstart.erl:
-module (quickstart).
-compile(export_all).
start(_, _) -> nitrogen:start().
stop(_) -> nitrogen:stop().
route(Path) -> nitrogen:route(Path).
request(Module) -> nitrogen:request(Module).
函数route/1和request/1是notrogen的,完成web服务器最基本的两项任务。
一般情况下,这两个函数不必修改。需要改动request/1的可能大些,例如,对传入的请求做权限验证,就在request/1中处理。
应用程序还需要规定基本设置的资源文件。例如quickstart_inets.app:
{application, quickstart_inets, [
{description, "Nitrogen Quickstart Examples"},
{mod, {quickstart, []}},
{env, [
{platform, inets},
{port, 8000},
{session_timeout, 20},
{sign_key, "b37ca07"},
{wwwroot, "./wwwroot"}
]}
]}.
文件中规定了模块名称和环境设置,譬如,平台是inets,端口是8000,网站根目录是"./wwwroot"等。