安装 Rebar

去 Github 页面下载 Rebar 项目 , https://github.com/rebar/rebar

解压后运行 bootstrap , 就会在当前目录下面生成两个文件 : rebar.cmdrebar , 分别对应了 Windows 和 Linux 的运行程序


创建 Erlang 项目

将刚刚生成的 rebar.cmdrebar 复制到需要创建项目的文件夹 , 运行创建项目命令 :

# rebar create-app appid=cowboydemo

就会在当前目录下生成 src 文件夹以及 src/cowboydemo.app.src , src/cowboydemo_app.erl , src/cowboydemo_sup.erl 三个文件 ;

在当前目录新建文件 rebar.config 配置文件 , 使其依赖 1.1.2 版本的 cowboy 库 , 写入以下内容 :

{deps, [
    {cowboy, "1.1.2", {git, "https://github.com/ninenines/cowboy", {tag, "1.1.2"}}}
]}.

编辑 src/cowboydemo.app.src 文件 , 添加 cowboy 相关配置如下 :

{application, cowboydemo,
 [
  {description, ""},
  {vsn, "1"},
  {registered, []},
  {applications, [
                  kernel,
                  stdlib,
                  cowboy
                 ]},
  {mod, { cowboydemo_app, []}},
  {env, [{http_port, 8080}]}
 ]}.

编辑 cowboydemo_app.erl 文件 , 修改如下 :

-module(cowboydemo_app).
-behaviour(application).
-export([start/2, stop/1]).

%% Application callbacks

start(_StartType, _StartArgs) ->
    Routes = [
     {'_', [
            {"/", cowboydemo_handler, []}
           ]}
    ],
    Dispatch = cowboy_router:compile(Routes),
    {ok, Port} = application:get_env(http_port),
    {ok, _} = cowboy:start_http(http, 100, [{port, Port}], [{env, [{dispatch, Dispatch}]}]),
    cowboydemo_sup:start_link().

stop(_State) ->
    ok.

src 目录新建 cowboydemo_handler.erl 请求处理模块文件 , 写入以下内容 :

-module(cowboydemo_handler).
-export([init/3]).
-export([handle/2]).
-export([terminate/3]).

init(_Transport, Req, []) ->
    {ok, Req, undefined}.

handle(Req, State) ->
    {ok, Req2} = cowboy_req:reply(200, [], <<"Hello World !">>, Req),
    {ok, Req2, State}.

terminate(_Reason, _Req, _State) ->
    ok.

src 目录新建 cowboydemo.erl 程序入口文件 , 写入以下内容 :

-module(cowboydemo).
-export([start/0]).

start() ->
    ok = application:start(crypto),
    ok = application:start(asn1),
    ok = application:start(public_key),
    ok = application:start(ssl),
    ok = application:start(ranch),
    ok = application:start(cowlib),
    ok = application:start(cowboy),
    ok = application:start(cowboydemo).

编译项目 :

# rebar get-deps compile


启动服务器

# erl -pa ebin deps/cowboy/ebin deps/cowlib/ebin deps/ranch/ebin -s cowboydemo

查看服务器加载的模块 :

# application:which_applications().

访问服务器 :

打开连接 : http://127.0.0.1:8080/

浏览器出现 Hello World ! , 说明成功了 ;

作者 Github : tojohnonly , 博客 : EnskDeCode

GitHub 加速计划 / li / linux-dash
10
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐