Page 96 - Node.js开发指南
P. 96
5.3 路由控制 89
res.render('index', { title: 'Express' }); 1
};
app.js 中通过 app.get('/', routes.index); 将“ / ”路径映射到 exports.index
函数下。其中只有一个语句 res.render('index', { title: 'Express' }),功能是
调用模板解析引擎,翻译名为 index 的模板,并传入一个对象作为参数,这个对象只有一个 2
属性,即 title: 'Express'。
3. index.ejs
index.ejs 是模板文件,即 routes/index.js 中调用的模板,内容是:
3
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
它的基础是 HTML 语言,其中包含了形如 <%= title %> 的标签,功能是显示引用的
变量,即 res.render 函数第二个参数传入的对象的属性。 4
4. layout.ejs
模板文件不是孤立展示的,默认情况下所有的模板都继承自 layout.ejs,即 <%- body %>
部分才是独特的内容,其他部分是共有的,可以看作是页面框架。
5
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' /> 6
</head>
<body>
<%- body %>
</body>
</html> 7
以上就是一个基本的工程结构,十分简单,功能划分却非常清楚。我们会在后面的小节
中基于这个工程继续完善,直到实现一个功能完整的网站。
8
5.3 路由控制
在上一节,我们已经讲过了如何使用 Express 建立一个基本工程,这个工程只包含一些
基础架构,没有任何实际内容。从这一小节开始,我们将会讲述 Express 的基本使用方法,
9
在前面例子的基础上逐步完善这个工程。
5.3.1 工作原理
10
当通过浏览器访问 app.js 建立的服务器时,会看到一个简单的页面,实际上它已经