Web应用框架 Express
更新日期:
还记得《Node.js 入门》中提到的最多依赖模板吗,前10名中的有两个,它们是:
05.express:轻量 Web App Framework,基于 connect
10.connect:Http Server 中间件库
connect 和 express 出自同一作者 TJ Holowaychuk。
express 是基于 connect的(从两个项目的git提交历史上看,先有 express 后有 connect)。
Connect 是一个 node 中间件(middleware)框架。为什么要用 connect?原生的 api 依然有简单静态文件服务器的诸多方面未经处理的问题,比如:404等异常未处理、没有基本的文件路径安全验证(实际上我们可以访问到整个os文件系统)、全局异常处理等等。但 connect 已经将这些问题都处理好了(写得更少做得更多)。
Express 是以 web 应用框架的面貌出现的,基于 connect;准确的说是在 connect 基础上添加一个更接近业务开发的框架。
Express 提供的框架比较灵活,你可以在 express 基础上实现 MVC。
从上图中可以看到,express 也实现了一些特殊的 connect 中间件
1.route middleware 实现路由
2.express.middleware 初始化express全局参数
3.mounted child app middleware 挂载子app
ps.
1.Express 是一个非常小的框架,3.0.0正式发布版只有932行源码,Express 强烈依赖 Connect 的只有267行源码,Connect 可选的中间件和扩展总共1143行源码,并且只有到使用时才会加载。
2.Node.js 虽然提供了 http 模块,却不是让你直接用这个模块进行 Web 开发的。http 模块仅仅是一个 HTTP 服务器内核的封装。
3.中间件(middleware)就是处理 HTTP 请求的函数,用来完成各种特定的任务。use 是 express 调用中间件的方法。每个中间件在 http 处理过程中通过改写 request 或(和)response 的数据、状态,实现了特定的功能。
Express
简介
基于 nodejs 的 websocket 的框架。Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具,中间件随取随用。它不对 node.js 已有的特性进行二次抽象,只是在它之上扩展了 Web 应用所需的功能。它也没有涉及到数据库,这个任务留给了第三方的 node 模块,有了第三方的模块基本上可以与任何数据库交互。
安装
全局安装 Express,Express 作为命令被安装到了系统中。
-g 代表安装到 NODE_PATH 的 li b里面
-d 代表把相依性套件也一起安装
支持的模板引擎
Express 支持许多模板引擎,常用的有:
1.Haml,haml 的实现
2.Jade,haml.js 接替者,同时也是 Express 的默认模板引擎
3.EJS,嵌入 JavaScript 模板
4.CoffeeKup,基于 CoffeeScript 的模板引擎
5.jQuery Templates 的 NodeJS 版本
API
除了 get 方法以外,Express 还提供 post、put、delete 方法,即 HTTP 动词都是 Express 的方法。
set 方法用于指定变量的值。
赋给变量xxx
框架设置 express 实例的参数:
port 访问端口
view 视图存放的目录
view engine 网页模板引擎
set 方法用于设定内部变量
use 方法用于调用 express 中间件
任何遵守这样回调的 (path, locals, callback) .
为了统一模板引擎接口和缓存,推荐查看 consolidate.js寻找帮助.
有些没有列出来的模板引擎没准也支持 Express.
参考
connect & express简介 来自博客园,Luics的博客,简介明了。还有demo+更多链接
Express 中文文档
express API
connect
Node.js 的API
Express 框架 来自《JavaScript标准参考教程》阮一峰