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方法,浏览器是不支持的。