zoukankan      html  css  js  c++  java
  • 如何在express使用doT模板引擎

    本文假设你已经使用过doT和express,并知道它的模板语法。

    js的模板引擎实在太多了,幸好 JavaScript template language shootoff 这篇不断被更新的文章,帮我们用真实的测试结果,得到了目前最快的模板引擎doT

    安装dot

    $ sudo npm install dot
    

    让express使用dot

    安装express的模板引擎约定,引擎必须有一个compile方法,接受str和options参数,返回一个function对象即可,接口大致如下:

    exports.compile = function(str, options) {
        // compile template str
        // return function
    }
    

    显然,只需要实现compile接口即可

    // dot.express.js
    var dot = require('dot');
    
    exports.compile = function(str, options) {
        return dot.template(str);
    };
    

    在express使用dot.express.js

    var dot_express = require('dot.express');
    
    app.set("view engine", "html");
    app.register(".html", dot_express);
    
    // render
    app.get('/', function(req, res, next) {
        res.render('index', {world: 'world'});
    });
    

    更简约的方式

    var dot = require('dot');
    
    app.set("view engine", "html");
    app.register(".html", {
        compile: function(str) {
            return dot.template(str);
        }
    });
    

    让你的html模板文件也通过智能提示校验

    dot默认的定界符是 {{ 和 }},这样模板文件会如下

    // index.html
    

    hello {{! word }}

    这样,肯定不能通过HTML智能提示校验
    参考tenjin的做法,将定界符修改为能通过智能提示校验的即可

        // index.js
        dot.templateSettings.begin = '<?js';
        dot.templateSettings.end = '?>';
        // index.html
        <p>hello <?js! word ?></p>

    'view cache' MUST enabled!

    线上环境必须开启'view cache',因为express的view会使用fs.statSync检测模板是否存在,如果不开启缓存,则每次都会同步检测和加载模板,整个web的性能就完蛋了。

    app.set('view cache', true);
  • 相关阅读:
    6389. 【NOIP2019模拟2019.10.26】小w学图论
    6383. 【NOIP2019模拟2019.10.07】果实摘取
    三分查找求极值
    51Nod 1278 相离的圆
    51 Nod 1092 回文字符串
    关于原根(来自百度百科)
    Hdu 1358 Period
    最大子矩阵和
    51 Nod 1072 威佐夫游戏
    The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online(2018 青岛网络预选赛)
  • 原文地址:https://www.cnblogs.com/zhaolizhe/p/6936934.html
Copyright © 2011-2022 走看看