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

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

        所以,咱们须要在项目中单独安装下express-partialsnode

$ npm install express-partials

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

        github上面提供了一个简单的例子展现如何调用新的中间件:
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`.})

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

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


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

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

相关文章
相关标签/搜索