consolidate : Template engine consolidation library.

支持的模板引擎非常多:

NOTE: you must still install the engines you wish to use, add them to your package.json dependencies.

  • pic
    支持的模板引擎
  • consolidate 的使用大致有 3 步:

    • 第一:指定模板引擎解析后应该输出什么类型的文件
      • server.set('view engine','html');//输出的是 html 文件
    • 第二:指定模板文件所在目录
      • server.set('views','./views');//指定模板文件所在目录为./views
    • 第三:指定使用什么引擎去解析模板
      • server.engine('html',consolidate.ejs);//对于输出 html 文件使用 ejs 去解析
    • 使用:
      • server.get('/index',function(req,res){res.render('1.ejs',{name:'zhangsan',age:'24'})});
      • render 函数的作用:编译模板并将结果返回给用户
  • 下面是一个完整的实例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    //server.js
    const express = require('express');//引入express框架
    const expressStatic = require('express-static');//引入express-static中间件
    const bodyParser = require('body-parser');//引入body-parser中间件
    const cookieParser = require('cookie-parser');//引入cookie-parser中间件
    const cookieSession = require('cookie-session');//引入cookie-session中间件
    //const jade = require('jade');//引入jade模板引擎
    //const ejs = require('ejs');//引入ejs模板引擎
    const consolidate = require('consolidate');//引入consolidate模板引擎适配器
    const fs = require('fs');//引入js模块
    const path = require('path');//引入path模块
    const multer = require('multer');//引入multer中间件
    //In an average web app, only dest might be required, and configured as shown in the following example.
    var upload = multer({dest: 'uploads/'});//指定文件上传目录
    var server = express();//创建http服务器



    server.listen(3000);//监听端口3000
    //1.解析cookie
    server.use(cookieParser('jfdifghdrihijdrfhdsefsefo'));//req里面就有req.cookies 和 req.signedCookies

    //使用session
    server.use(cookieSession({name:'sess',keys:['123','abc','123456'],maxAge:2*3600*1000}));

    //post数据
    //server.use(bodyParser.urlencoded({extended:false}));//不能处理multipart/form-data类型表单
    server.use(upload.single('f1'));//.single(fieldname)
    //Accept a single file with the name fieldname. The single file will be stored in req.file.


    //使用consolidate
    server.set('view engine','html');
    server.set('views','./views');
    server.engine('html',consolidate.ejs);

    server.get('/conso',function(req,res){
    res.render('2.ejs',{name:'xiaohaozi',age:27});
    });

    //./views/2.ejs
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Title</title>
    <style>

    </style>
    </head>
    <body>
    你的名字:<%= name %><br>
    你的年龄:<%= age %>
    <script>

    </script>
    </body>
    </html>
  • 效果截图:

  • pic
    consolidate适配器