Node.js学习笔记6【express--hello world】
2014-07-22 11:59
561 查看
准备工作
MVC(模型—视图—控制器)l 模型是对象及其数据结构的实现,通常包含数据库操作
l 视图表示用户界面,在网站中通常就是HTML的组织结构
l 控制器用于处理用户请求和数据流、复杂模型,将输出传递给视图
我们称PHP/ASP/JSP为“模板为中心的架构”
特性 | 模板为中心架构 | MVC架构 |
页面产生方式 | 执行并替换标签中的语句 | 由模板引擎生成HTML页面 |
路径解析 | 对应到文件系统 | 由控制器定义 |
数据访问 | 通过SQL语句查询或访问文件系统 | 对象关系模型 |
架构中心 | 脚本语言是静态HTTP服务器的扩展 | 静态服务器是脚本语言的补充 |
适用范围 | 小规模网站 | 大规模网站 |
学习难度 | 容易 | 较难 |
Node.js本质上和Perl工C++一样,都可以作为CGI扩展被调用,但它还可以跳过HTTP服务器,因为它本身就是。传统架构中的http服务器角色会由Apache NginxIIS之类的软件来担任,而Node.js不需要。Node.js提供了http模块,它是由C++实现的,性能可靠,可以直接应用到生产环境。
express框架
express(http://expressjs.com/)除了为http模块提供了更高层的接口外,还实现了许多功能:路由控制
模板解析支持
动态视图
用户会话
CSRF保护
静态文件服务
错误控制器
访问日志
缓存
插件支持
需要指出的是,Express不是一个无所不包的一能框架,像Rails或Django那样实现了模板引擎甚至ORM。它只是一个轻量级的Web框架,多数功能只是对HTTP协议中常用操作的封装,更多的功能需要插件或者整合其他模块来完成。
下面用Express重新实现前面的例子:
var express =require(“express”);
var app =express.createServer();
app.use(express.bodyParser());
app.all('’,function(req,res){
res.send(req.body.title+req.body.text)
});
app.listen(3000);
可以看到,我们不需要手动编写req的事件监听器了,只需要加载express.bodyParser()就能直接通过req.body获取POST的数据了。
快速开始
首先我们要安装Express。如果一个包是某个工程的依赖,那么我们需要在工程的目录下使用本地模式安装这个,如果要通过命令行调用这个包中的命令,则需要全局模式安装,因此按钮理说我们使用本地模式安装Express即可。但是Express像很多框架一样都提供了Quick Start工具,这个工具的功能通常是建立一个网站最小的基础框架,在此基础上完成开发。当然你可以完全自己动手,但我还是推荐使用工具更快速地建立网站。为了使用这个工具,我们需要全局模式安装Express,因为只有这样我们才能在命令中使用它。npminstall– g express (好像新版的安装不是这样的啦,我做实验时用的安装是npm install –g express-generator)
建立工程
通过以下命令建立网站基本结构.Express在初始化一个项目的时候需要指定模板引擎,默认支持Jade和ejs,为了降低学习难度我们推荐使用ejs,同时暂时不添加CSS引擎和会话支持。express –t ejs microblog (我做实验用时node v0.10.28,如果使用ejs则命名行中使用express –e )
启动服务器使用在microblog目录下npm start 在地址栏里输入http://127.0.0.1:3000可以在浏览器上看到Express welcome to express。百度了一下,网上有如下解释:http://www.myexception.cn/javascript/1663199.html
由Express创建的网站架构如下图:
这是一个典型的MVC架构,浏览器发起请求,由路由控制器接受,根据不同的路径定向到不同的控制器。控制器处理用户的具体请求,可能会访问数据库中的对象,即模型部分。控制器还要访问模板引擎,生成视图的HTML,最后再由控制器返回给浏览器完成一次请求
相关文章推荐
- Node.js学习笔记10--Express搭网站(2)
- node.js学习笔记13—express视图
- node.js学习笔记(3)--Express创建的项目分析
- node.js Express框架学习笔记
- 学习笔记-NODE.JS, EXPRESS, JADE, AND MONGODB
- node.js学习笔记(4)--使用Express完成简单的登陆
- node.js 和 express 框架学习笔记(2)
- node.js在windows下的学习笔记(7)---express的app.js的详细配置说明
- node.js 基础学习笔记3 -express
- node.js在windows下的学习笔记(6)---安装Express
- NodeJS学习笔记--NodeJS+Express基础概念梳理记录
- node.js 和 express 框架学习笔记(1)
- node.js 和 express 框架学习笔记(3)
- 客户端网络pomelo学习笔记 (3) node.js 与 c 客户端 Diffie-Hellman 密钥交换算法的实现客户端网络
- NodeJS-学习笔记(2)--使用node提供的express框架开发简单的web应用
- pomelo学习笔记 (3) node.js 与 c 客户端 Diffie-Hellman 密钥交换算法的实现
- node.js 学习笔记三:路由url
- Node.js Express 从入门到菜鸟(一)——Hello World!+EJS模板+后台传参到前台+分布视图
- Node.js开发笔记Windows篇(二)安装Express
- NODE.JS学习笔记——CRYPTO 加密模块