Express 3.x以后模板继承的改变

        在使用Express 开发web项目时突然发现继承功能无法正常启用了,然而网上大多还是停留在之前的版本的记录。在3.x以后的版本中模板继承功能已经不再被支持了,如果需要继续使用这个功能的话需要单独加载继承模块的中间件 express-partials 。

        因此,我们需要在项目中单独安装下express-partials

$ npm install express-partials

        在安装完成后,可以根据官方的例子调整已有的项目即可重新集成模板继承功能。

        github上面提供了一个简单的例子展示如何调用新的中间件:

var express = require('express')
  , partials = require('express-partials')  // 添加加载声明
  , app = express();
  
// 加载中间件
eapp.use(partials());

app.get('/',function(req,res,next){
  res.render('index.ejs') 
  // -> render layout.ejs with index.ejs as `body`.})

app.get('/no-layout',function(req,res,next){
  res.render('index.ejs',{layout:false})  // -> only renders index.ejs})

app.get('/mobile',function(req,res,next){
  res.render('index.ejs',{layout:'mobile'})  // -> render mobile.ejs with index.ejs as `body`.})

从官方提供的例子可以看出在新版中需要单独引入继承模块并进行调用,加入上述声明与调用即可。

注:app.use(partials()); 语句必须放在路由调用的前面,否则无法正常起效(即必须放在 app.use(app.router); 的上面)。


        参考文档:https://github.com/publicclass/express-partials

                       http://aresli.com/nodejs-expressjs-study-notes-3.html

你可能感兴趣的:(layout,nodejs,express)