express 中使用ejs

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maindek/article/details/82669720

express中使用ejs

var express = require('express');//需要安装 express :  cnpm i --save express
var app = express();

app.set("view engine","ejs");//模版引擎设置为 ejs

文件组织

在express中使用ejs,文件组织遵循express。
.views——-放置动态模版
.public——放置静态网页
.layouts—–放置布局文件

基本语法

.<% code %>//    无缓冲的条件语句元素
.<%= code %>//转义HTML,该code并且会打印出来
.<%- code %>//非转义的buffering,该code并且会打印出来
.<% include file %>//内嵌别的文件
.<% layout(file) -%>//指定布局文件
.<% script(file) -%>//包含js脚本文件
.<% stylesheet(file) -%>//包含css文件
.<% block(code, code) -%>//指定块内容    

基本对象

.scripts
包含的脚本

.stylesheets
包含的css

.blocks
包含的块

例子

//index.ejs
<% layout('boilerplate') -%>
<% script('foo.js') -%>
<% stylesheet('foo.css') -%>
<h1>I am the <%=what%> template</h1>
<% block('header', "<p>I'm in the header.</p>") -%>
<% block('footer', "<p>I'm in the footer.</p>") -%>
//boilerplate.ejs
<!DOCTYPE html>
<html>
  <head>
    <title>It's <%=who%></title>
    <%-scripts%>
    <%-stylesheets%>
  </head>
  <body>
    <header>
      <%-blocks.header%>
    </header>
    <section>
      <%-body -%>
    </section>
    <footer>
      <%-blocks.footer%>
    </footer>
  </body>
</html>
//app.js
var express = require('express')
  , engine = require('ejs-locals')
  , app = express();

// use ejs-locals for all ejs templates:
app.engine('ejs', engine);

app.set('views',__dirname + '/views');
app.set('view engine', 'ejs'); // so you can render('index')

// render 'index' into 'boilerplate':
app.get('/',function(req,res,next){
  res.render('index', { what: 'best', who: 'me' });
});

app.listen(3000);

结果

<!DOCTYPE html>
<html>
  <head>
    <title>It's me</title>
    <script src="foo.js"></script>
    <link rel="stylesheet" href="foo.css" />
  </head>
  <body>
    <header>
      <p>I'm in the header.</p>
    </header>
    <section>
      <h1>I am the best template</h1>
    </section>
    <footer>
      <p>I'm in the footer.</p>
    </footer>
  </body>
</html>

猜你喜欢

转载自blog.csdn.net/maindek/article/details/82669720