`
litaocheng
  • 浏览: 339818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nitrogen web framework 入门

阅读更多

Nitrogen web framework 入门

Author: Data: Version:
litaocheng@gmail.com
2009-1-23
0.1

1   概述

Nitrogen是一个使用Erlang开发的Web Framework

2   特性

  • 事件驱动模型(和ASP.NET相似,和Ruby On Rails不同)
  • 简洁高效:只有~2.5k行代码实现
  • 与JavaScript等脚本的交互
  • 支持Client和Server的Form验证
  • Coment和Long Polling的支持
  • 通用的Ajax相关控件实现
  • 页面表现与逻辑独立
  • 页面文件为纯粹的Erlang代码
  • 多种HTTP Server配置

3   期待

  • 丰富的文档
  • 完善的错误处理机制
  • 丰富的调试工具
  • 页面热替换
  • 可配置javascript lib,比如"jquery", "Mootools", "MochiKit "等
  • 提供多种数据库访问
  • 精简Nitrogen中各种标签的定义及设置
  • 制定一些通用web模型

4   术语(Glossary of Terms)

  • application 包含很多的page
  • 每个 page 包含很多 element ,nitrogen将其render为html tag
  • 每个element可以关联一个或多个 action ,在浏览器中控制page
  • 有些action可以成为 event ,event会从浏览器端postback到server端进行处理

5   应用的结构

一个Web Application其实就是Erlang OTP中的一个Application,这个Application我们可以通过脚本来进行创建. 包含下面的内容:

  1. html模板文件(包含html,css,image,通常位于/wwwroot/目录下)
  2. erl页面代码(包含myapp.app, *.erl文件,通常位于/src/目录下)
  3. start.sh启动脚本(用来启动本应用,实质是调用erl启动Application)

Nitrogen默认的路径映射规则,是将 / 转化为 _ ,比如: http://domain/web/user 对应的页面文件为 web_user.erl

用户也可以通过定义myapp:route/1函数,定义自己的路径映射规则。

开发一个应用,首先我们设计编辑html模板页面,随后编写erl页面代码,最后是编译部署,启动。

6   一个简单的例子

创建一个Web版的"Hello World":

$ mkdir myfirstweb
$ cd myfirstweb
$ nitrogen create helloworld
 Copy Nitrogen Static: "livevalidation.js"
 ...
 Creating file: "helloworld_app.erl"
$ ls
doc        ebin       Emakefile  Makefile   src        start.sh   wwwroot
$ cd src/pages/
$ ls
web_index.erl

接下来让我们编辑web_index.erl::

-module (web_index).
-include_lib ("nitrogen/include/wf.inc").
-compile(export_all).

main() ->
       #template { file="./wwwroot/template.html"}.

title() ->
       "hello world".

body() ->
   [
       #h1{text ="My First Nirogen Web"},
       #panel{text = "Hello World"}
   ].


event(_) -> ok.

保存后,继续:

$ cd ../..
$ ./start.sh
Starting Nitrogen.
Erlang (BEAM) emulator version 5.6.5 [source] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.6.5  (abort with ^G)
(nitrogen@localhost)1> Recompile: ./src/pages/web_index

--- Nitrogen is now running on inets. Serving files from: ./wwwroot. Open your browser to: http://localhost:8000 ---

启动浏览器,URL:http://localhost:8000/ 看到Hello World了吧。

分享到:
评论
5 楼 Arden 2009-01-29  
<p>目前基于erlang的web框架有:</p>
<p><br />1 erlyweb(<a href="http://erlyweb.org">http://erlyweb.org</a>) <br />2 erlangweb(<a href="http://www.erlang-web.org">http://www.erlang-web.org</a>)<br />3 nitrogen(<a href="http://nitrogenproject.com">http://nitrogenproject.com</a>)   基于事件驱动,类似于asp.net <br />4 beepbeep(<a href="http://github.com/davebryson/beepbeep/tree/master">http://github.com/davebryson/beepbeep/tree/master</a>)   基于rails模式 </p>
<p><br />本人比较看好beepbeep这种基于rails的开发模式,至于erlyweb,erlangweb这个两个,erlyweb是比较早的一个框架,但目前一直不活跃,自从08年7月发布一个0.7版后一直就没有更新,对它基本上已经不抱什么希望了,而erlangweb比较活跃,更新速度相当快,但给我的感觉就象就java的开发框架一样,有点复杂。</p>
<p> </p>
4 楼 Arden 2009-01-28  
beepbeep 这相框架好象蛮牛的~~~
3 楼 Arden 2009-01-25  
erlang现在也有那么多web开发框架:erlyweb,erlangweb,哪个好用些了?
2 楼 litaocheng 2009-01-23  
Arbow 写道

是翻译的文章吗?期待更深入的讲解


嘿嘿,我这个是简单版本嘿嘿,
老外有一篇nitrogen + ecouch + couchdb开发一个blog的demo
1 楼 Arbow 2009-01-23  
是翻译的文章吗?期待更深入的讲解

相关推荐

    A Versatile, Ultralight, Nitrogen‐Doped Graphene Framework.pdf

    标题:“A Versatile, Ultralight, Nitrogen‐Doped Graphene Framework.pdf” 描述的是一篇关于氮掺杂的石墨烯框架(Nitrogen-Doped Graphene Framework, GF)的研究论文,该框架具有多功能、超轻以及氮掺杂的特点...

    nitrogen_1

    erlang的Web开发 随着Erlang和FP的普及,总有人想把Erlang用在Web开发上。 虽然这不一定是个靠谱的想法,但是,...Nitrogen 就是其中一个实现。它主要关注在快速开发交互密集型的Web,喜欢Erlang的童鞋可以看一下。

    Nitrogen6X_Hardware_Manual_rev1.3.pdf

    《Nitrogen6X_Hardware_Manual_rev1.3.pdf》是一份详细的硬件手册,其修订版本为第1.3版。该手册是关于Boundary Devices公司发布的i.MX6x Nitrogen6X开发板的技术文档。此开发板是一个基于i.MX6四核应用处理器的低...

    Nitrogen leaching in response to increased nitrogen inputs in subtropical monsoon forests in southern China

    在中国南方亚热带季风森林中,氮素淋溶对增加的氮输入的响应是一个重要的生态研究领域,涉及复杂的氮循环过程及其对环境的影响。本文基于标题、描述、标签及部分内容,深入探讨了这一主题下的关键知识点。...

    nitrogen 聊天室

    Nitrogen是一个用Erlang编程语言开发的Web应用框架,它提供了一个轻量级、高性能的平台来构建交互式的Web应用。Erlang以其并发处理能力和容错性著称,这使得Nitrogen聊天室在多用户环境下能稳定运行,并能处理大量...

    Root-Water/Nitrogen-Uptake and Root Nitrogen Mass of Winter Wheat under Optimal Water Condition

    最优水分条件下冬小麦根系吸水、吸氮与根氮含量之间的关系,石建初,左强,在土壤-植物系统中,根系吸收土壤中的水、氮对植物生长以及对土壤中的水、氮运移都具有非常重要的作用。在考虑植物根长的基础之

    Introduction to Nitrogen

    Introduction to Nitrogen

    nitrogen_core:核心氮库

    "nitrogen_core"是一个专为JavaScript开发的框架的核心组件,其设计目的是为了提供一套高效、灵活的工具,用于构建Web应用程序。在这个核心氮库中,包含了构建动态和交互式用户界面所需的关键元素、动作、处理器和库...

    nitrogen-1.1-wm5.cab WINCE PPC

    nitrogen-1.1-wm5.cab WINCE PPC

    Entanglement replication in driven hybrid quantum devices withsuperconducting resonators and nitrogen-vacancy-center ensembles

    根据提供的文件信息,以下是对混合量子系统中纠缠复制过程的知识点的详细阐述: 1. 混合量子系统的构成 混合量子系统是由超导传输线腔链和氮空穴色心(NV色心)系综组合而成的。超导传输线腔(resonators)是超导...

    Amelioration of nitrogen difference method in legume intercropping system

    Amelioration of nitrogen difference method in legume intercropping,余常兵,李隆,Nitrogen difference method is commonly used to appraise biological nitrogen fixation, which is a well established ...

    Microstructure thermostability of high nitrogen austenitic stainless steel

    Microstructure thermostability of high nitrogen austenitic stainless steel,袁志钟,戴起勋,High nitrogen austenitic stainless steel, Fe24Mn18Cr3Ni0.62N, was isothermal annealed from 750℃ to 900 ℃ ...

    氮气:适用于Erlang的氮气Web框架(现在带有websockets!)

    用于Erlang的Nitrogen Web框架 Nitrogen是基于Erlang的Web框架,它使您可以使用纯Erlang技术堆栈来开发无限可扩展的,富Ajax的Web应用程序。 有关更多信息,请参见。 入门 遵循位于的教程 在Linux和OSX上构建氮气 ...

    Nitrogen modulated magnetic properties of Fe films

    铁膜磁性氮调制,W. H. Zhong,B. K. Tay,The structure and magnetic properties can be modulated by adding nitrogen because of the aleration of Fe atomic valence upon reaction.

    NITROGEN6X_REV4.pdf

    本文基于提供的一系列零件编号,将详细讨论NITROGEN6X REV4电路原理图中涉及的硬件组件。这些编号代表了电路中的不同模块、集成电路(IC)、连接器、电容器和电阻器等。 首先,以PIC开头的编号通常指的是微控制器...

    registry:用户、设备、应用程序和服务等 Nitrogen 主体的注册和身份验证服务器

    注册表注册表服务为 Nitrogen 中的安全主体(设备、应用程序和用户)提供身份和发现服务。安装git clone https://github.com/nitrogenjs/registry cd frontdoor npm install node server.js如何贡献反馈:我们很乐意...

    CVN impact properties of high-nitrogen austenitic stainless steels

    CVN impact properties of high-nitrogen austenitic stainless steels,袁志钟,戴起勋,The Charpy v notch (CVN) impact properties of two kinds of high-nitrogen austenitic stainless steels (HNASS) Fe24Mn...

    nITROGEN-开源

    标题中的“nITROGEN-开源”指的是一个名为nITROGEN的开源项目,它可能是一个专门为物联网(IoT)设计的随机数生成器。在IT领域,随机数生成器是至关重要的,尤其是在加密、安全协议和模拟等领域,因为它们需要不可...

    erlang 框架

    Nitrogen是一款流行的Erlang Web框架,它提供了一套简单的API和抽象层,让开发者能够用Erlang轻松地构建动态网页和Web服务。其核心特性包括: 1. **事件驱动**:Nitrogen基于Erlang的进程模型,实现了事件驱动的...

    Nitrogen fixation of faba bean interacting with a non-legume in two contrasting intercropping systems

    Nitrogen fixation of faba bean interacting with a non-legume in two contrasting intercropping systems,范分良,余常兵,A field experiment was carried out to quantify biological nitrogen fixation (BNF)...

Global site tag (gtag.js) - Google Analytics