Express的模板引擎
2017-03-31 本文已影响0人
红烧排骨饭
模板引擎是什么
模板引擎(Template Engine)是一个将页面模板和数据结合起来生成 html 的工具
ejs
ejs 作为一个模板引擎,使用起来十分简单,而且与 express 集成良好
安装
npm install ejs --save
使用
修改 index.js,设置模板的存放路径,并设置当前的模板引擎为 ejs
var express = require('express');
var path = require('path');
var app = express();
app.set('views', path.join(__dirname, 'views')); // 模板文件存放在 views/ 文件夹下
app.set('view engine', 'ejs'); // 模板引擎为 ejs
var indexRouter = require('./routes/index');
var userRouter = require('./routes/user');
app.use('/', indexRouter);
app.use('/user', userRouter);
app.listen(3000);
在 views 文件夹下建立 user.ejs 文件,并加入如下代码
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<%= name %>
<body>
</html>
修改 routes/user.js 文件,加入一个新的路由
router.get('/:name', function(req, res) {
res.render('user', {
name: req.params.name
});
});
以上代码的意思是:当访问如 http://localhost:3000/user/okada 路径时,到 views 文件夹下找到名字为 user
的模板文件,然后渲染模板,最后返回渲染好的 HTML 内容
<!DOCTYPE html>
<html>
<head>
</head>
<body>
okada
<body>
</html>
路径中 :name
起了占位符的作用,这个占位符的名字是 name
,可以通过 req.params.name
取到实际的值。
获取 req 中的请求信息常见方法有几种
-
req.query
解析 URL 中的 query parameters,比如name=okada
-
req.params
解析 url 中的占位符,如 /:name -
req.body
解析请求体,需使用相关的模块,如 body-parser