Page 88 - Node.js开发指南
P. 88
5.1 准备工作 81
表5-1 Web 开发架构对比
1
特 性 模板为中心架构 MVC 架构
页面产生方式 执行并替换标签中的语句 由模板引擎生成 HTML 页面
路径解析 对应到文件系统 由控制器定义
①
数据访问 通过 SQL 语句查询或访问文件系统 对象关系模型 2
架构中心 脚本语言是静态 HTTP 服务器的扩展 静态 HTTP 服务器是脚本语言的补充
适用范围 小规模网站 大规模网站
学习难度 容易 较难
3
这两种架构都出自原始的 CGI,但不同之处是前者走了一条粗放扩张的发展路线,由于
易学易用,在几年前应用较广,而随着互联网规模的扩大,后者优势逐渐体现,目前已经成
为主流。 4
Node.js 本质上和 Perl 或 C++ 一样,都可以作为 CGI 扩展被调用,但它还可以跳过 HTTP
服务器,因为它本身就是。传统的架构中 HTTP 服务器的角色会由 Apache、Nginx、IIS 之类
的软件来担任,而 Node.js 不需要 。Node.js 提供了 http 模块,它是由 C++ 实现的,性能
②
可靠,可以直接应用到生产环境。图5-1 是一个简单的架构示意图。 5
6
7
图5-1 Node.js 与 PHP架构的对比 8
Node.js 和其他的语言相比的另一个显著区别,在于它的原始封装程度较低。例如 PHP 中
你可以访问 $_REQUEST 获取客户端的 POST 或 GET 请求,通常不需要直接处理 HTTP 协
9
——————————
① 例如 http://example.com/hello/world.php 对应服务器上的 /hello/world.php 这个文件。当然这不是绝对的,现在很多
PHP开发框架都是只提供单个入口,利用服务器的 Rewrite 支持实现了路径的自由控制。我们一般情况下指的是
原生的(或默认的)支持。 10
② 或者说不是必要的,因为你也可以把 Node.js 的服务器当作 Apache 或 Nginx 后端。