最最最简单的模板引擎

2019-08-14  本文已影响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);
};
*/
上一篇下一篇

猜你喜欢

热点阅读