Page 95 - Node.js开发指南
P. 95

88  第 5 章  使用 Node.js 进行 Web 开发


                 对比上一节使用 Express 的例子,这个文件长了不少,不过并不复杂。下面来分析一下
             这段代码。
                 首先我们导入了 Express 模块,前面已经通过 npm 安装到了本地,在这里可以直接通过
             require 获取。routes 是一个文件夹形式的本地模块,即./routes/index.js,它的功能
             是为指定路径组织返回内容,相当于 MVC 架构中的控制器。通过 express.createServer()
             函数创建了一个应用的实例,后面的所有操作都是针对于这个实例进行的。
                 接下来是三个  app.configure 函数,分别指定了通用、开发和产品环境下的参数。
             第一个 app.configure 直接接受了一个回调函数,后两个则只能在开发和产品环境中调用。
                 app.set 是 Express 的参数设置工具,接受一个键(key)和一个值(value),可用的参
             数如下所示。
                   basepath:基础地址,通常用于 res.redirect() 跳转。
                   views:视图文件的目录,存放模板文件。
                   view engine:视图模板引擎。
                   view options:全局视图参数对象。
                   view cache:启用视图缓存。
                   case sensitive routes:路径区分大小写。
                   strict routing:严格路径,启用后不会忽略路径末尾的“ / ”。
                   jsonp callback:开启透明的 JSONP 支持。
                 Express 依赖于 connect,提供了大量的中间件,可以通过 app.use 启用。app.configure
             中启用了5个中间件: bodyParser、methodOverride、router、static 以及 errorHandler。
             bodyParser 的功能是解析客户端请求,通常是通过 POST 发送的内容。methodOverride
                                      ①
             用于支持定制的 HTTP 方法 。router 是项目的路由支持。static 提供了静态文件支持。
             errorHandler 是错误控制器。
                 app.get('/', routes.index); 是一个路由控制器,用户如果访问“ / ”路径,则

             由 routes.index 来控制。
                 最后服务器通过 app.listen(3000); 启动,监听3000端口。

                 2. routes/index.js
                 routes/index.js 是路由文件,相当于控制器,用于组织展示的内容:


                 /*
                  * GET home page.
                  */

                 exports.index = function(req, res) {
             ——————————
                ① 如PUT、DELETE等HTTP方法,浏览器是不支持的。
   90   91   92   93   94   95   96   97   98   99   100