node.js学习笔记:中间件consolidate配置模板引擎

在node.js的实际使用中,我们并不会把传送给浏览器的页面都挨个去写,尤其是在一个网站中,会有很多范式相同的页面,我们通常会使用模板去减少重复的工作量。

模板引擎有很多种,包括我们后面会提到的ejs和art-template,它们除了本身,还需要有一个工具来把它们转换成供浏览器辨识的格式。consolidate就是起到这个作用的。它支持绝大多数主流的模板引擎。

使用步骤

  1. 引入consolidate模块

    1
    const consolidate = require("consolidate");
  2. 规定使用哪一种模板引擎

    1
    server.engine("html", consolidate.ejs);
  3. 规定用模板引擎输出什么类型的文件

    1
    server.set("view engine","html");
  4. 规定模板引擎的根目录

    1
    server.set("views", "./view");
  5. 使用模板引擎渲染

    1
    2
    3
    server.get('/', (req, res) => {
    res.render('1.ejs', {name: "nikkkki"}); //补全模板中的变量
    })

这里我们先使用一个ejs文件来做例子。

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
我的名字:<%=name %>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const express = require("express");
const cons = require("consolidate");

let server = express();
server.engine("html", cons.ejs);
server.set("view engine", "html");
server.set("views", "view");

server.use("/", (req, res) => {
res.render("1.ejs", {name: "nikkkki"});
})
server.listen(9000, () => {
console.log("server running at 9000");
})

访问http://localhost:9000就可以把1.ejs文件渲染出来了:

image-20180813220500388

使用consolidate需要设置的内容比较多,容易忘记,可以问自己终极三连问:

  • 用什么模板 => server.engine
  • 渲染成什么文件 => server.set("view engine", )
  • 模板在哪里 => server.set("views", path)