美文网首页
最最最简单的模板引擎

最最最简单的模板引擎

作者: 一点金光 | 来源:发表于2019-08-14 17:29 被阅读0次

    分类:Express模板引擎定制

    使用Express的 app.engine(ext,callback)接口来定制自己的引擎。Ext为模板文件后缀,callback为引擎处理模板函数。该函数接受以下参数:文件路径(filePath),选项对象(options),回调函数(callback)。
    建立引擎:

    //下面是一个简单渲染.ntl模板文件的引擎。
    
    //app.js
    var express = require('express');
    var app = express();
    
    //即将定制的这个模板引擎需要操作文件,所以引入fs
    var fs=require('fs');
    
    //绑定模板后缀:ntl
    //绑定引擎函数:
    app.engine('ntl',function(filePath,options,callback){
    
        fs.readFile(filePath,function(err,content){
            if(err)return callback(err);
    
            //this is an extremely simple template engine
            var rendered=content.toString().replace('#title#','<title>'+
            options.title+'</title>')
            .replace('#message#','<h1>'+options.message+'</h1>')
            return callback(null,rendered)
        })
    })
    //绑定模板路径
    app.set('views','./views');
    //绑定引擎名称?
    app.set('view engine','ntl');
    

    书写模板:

    下面是一个简单的模板文件。
    
    //views/index.ntl
    #title#
    #message#
    

    书写路由:

    //app.js
    //app.listen(8386, '127.0.0.1');//express默认的为3000
    app.get('/',function(req,res){ res.render('index',{title:'Hey',message:'Hellothere!'}) })
    module.exports = app;
    

    查看效果:

    //现在选择app.js文件启动web服务器,访问当前路径127.0.0.1:3000,可以看到view/index.ntl文件的渲染结果。
    node run start
    

    改写端口:

    app.listen(8386, '127.0.0.1');
    
    /*
    查看了一下express的源码,看到它是重写了http的用法:
    var http = require('http');
    app.listen = function listen() {
      var server = http.createServer(this);
      return server.listen.apply(server, arguments);
    };
    */
    

    相关文章

      网友评论

          本文标题:最最最简单的模板引擎

          本文链接:https://www.haomeiwen.com/subject/oddtyftx.html