express: 添layout功能

利用 express-ejs-layouts 给 express 添加 layout 功能
更新于: 2024-01-14 09:28:41

安装

yarn add express-ejs-layouts

配置

通用模板,设置默认的目录。

var express = require('express');
var expressLayouts = require('express-ejs-layouts');

var app = express();

app.set('view engine', 'ejs');

app.use(expressLayouts);
app.set('layout', 'layouts/layout');

app.get('/', function(req, res) {
  var locals = {
    title: 'Page Title',
    description: 'Page Description',
    header: 'Page Header'
  };
  res.render('the-view', locals);
});

app.listen(3000);

不同的 layout

app.get('/', function(req, res) {
  res.render('app-view', { layout: 'app-layout' });
});

app.get('/page', function(req, res) {
  res.render('page-view', { layout: 'page-layout' });
});

cheatsheet

layout.ejs + index.ejs 渲染成  index.html

layout.ejsindex.ejsindex.html
1
<%-defineContent('a')%>
2
<%-defineContent('b')%>
3
<%- contentFor('a') %>
1.5
1
1.5
2
3

参考