第三方插件-EJS

ejs

1.概念

EJS 是一套简单的模板语言,在NodeJS后端利用ejs模板引擎, 生成 HTML 页面

2.优点

​ 纯 JavaScript

​ 快速开发

​ 执行迅速

​ 语法简单: 可以直接在HTML中书写JS代码

​ 同时支持前后端环境

​ 相比pug, 更贴近于我们现使用的HTML标签语法

3.使用

​ 安装ejs模块, npm install ejs

​ 配置模板引擎类型 : app.set(‘view engine’, ‘ejs’)

​ 配置模板引擎的路径 : app.set(“views”, “./template”);

​ 如果说在模板引擎中输出标识符 <%=标识符%>

​ 对象不能直接进行输出 会出现【object object】

​ 那么我们使用对象必须进行迭代 也就是遍历 我们在模板引擎的<%%> 里面 完全可以使用JS代码

​ 如果说不涉及输出 只是读取JS代码 不能家等号 因为等号是输出的意思 <%%>

​ 再如果说 我们传递到后台中的数据是一个html标签 那么需要使用<%-标识符%>

4.作用

​ 模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率

​ 良好的设计也使得代码重用变得更加容易

​ 我们司空见惯的模板安装卸载等概念,基本上都和模板引擎有着千丝万缕的联系

​ 模板引擎不只是可以让你实现代码分离,也可以实现数据分离(动态数据与静态数据),还可以实现代码单元共享

​ 甚至是多语言、动态页面与静态页面自动均衡(SDE)等等与用户界面可能没有关系的功能

const express = require('express');
const path = require('path')

let app = express();

// 配置模板引擎类型
app.set('view engine','ejs');
// 配置模板引擎的路径
app.set('views','./template/');

// 配置好模板引擎就可以使用了
app.get('/index',(request,response)=>{
    let num = 999999999999999;
    let str = '你好  Eric';
    let obj = {name:'Eric',age:18,sex:'男'};
    let arr = [1,3,5,7,9];
    let data = [
        {name:'貂蝉',age:17,sex:'女'},
        {name:'大乔',age:18,sex:'女'},
        {name:'西施',age:16,sex:'女'},
        {name:'王昭君',age:14,sex:'女'},
        {name:'杨玉环',age:13,sex:'女'},
        {name:'褒姒',age:16,sex:'女'},
    ];
    let html = "<h1>多多益善</h1>";
    response.render('index',{num,str,obj,arr,data,html});
});

app.listen(3000,'127.0.0.1',()=>{
    console.log('服务器正在运行......');
})

​ 模板引擎文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ejs模板引擎</title>
</head>
<body>
    <!-- <div><%=num%></div> -->
    <!-- <div><%=str%></div> -->
    <!-- <div><%=arr%></div> -->
    <!-- <div><%=obj%></div> -->
    <!-- <div><%=data%></div> -->
    <!-- <div><%=html%></div> -->
    <!-- <% for (let i in obj) { %>
        <p style="background:#CCC"><%=obj[i]%></p>
    <% } %> -->
    <table width="60%" align="center" border="1" cellspacing='0'>
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
        </tr>
        <% data.forEach(element=>{ %>
            <tr align="center">
                <td><%=element.name%></td>
                <td><%=element.age%></td>
                <td><%=element.sex%></td>
            </tr>
        <% }) %>
    </table>
    <div><%-html%></div>
</body>
</html>
3.使用

​ 使用bodyparser的时候 我们接收post参数 参数存储在request对象中的body属性中

​ 和路由参数存储在params属性中的效果是一样的 如果说body属性中有数据 那么他就是一个对象

const express = require('express');
const bodyParser = require('body-parser');
const path = require('path')
let app = express();

// 配置bodyparser  使用app中的use方法
// 配置表单数据  内置一个参数  参数是一个对象
// 如果说extended的值为false  那么可以接受 字符串和数组  如果说为true  那么可以接受任意数据类型
app.use(bodyParser.urlencoded({extended : true}));
// 配置JSON
app.use(bodyParser.json());

// 配置模板引擎类型
app.set('view engine','ejs');
// 配置模板引擎的路径
app.set('views',path.resolve(__dirname,'./template/'));

// 配置好模板引擎就可以使用了
app.post('/index',(request,response)=>{
    console.log(request.body);
});

app.listen(3000,'127.0.0.1',()=>{
    console.log('服务器正在运行......');
})
EJS(Embedded JavaScript)是一种基于JavaScript的模板引擎,可以用来生成HTML、XML等文档。EJS提供了一种简单的方式来将数据嵌入到HTML页面中。其中,include指令用于在EJS模板中引入其他模板文件。 使用include指令,需要在模板中使用以下语法: ``` <% include path/to/other/template.ejs %> ``` 其中,path/to/other/template.ejs是要引入的模板文件的路径。注意,在使用include指令时,被引入的模板文件中不应该包含任何与当前模板文件相同的变量或函数,否则可能会导致冲突。 需要注意的是,EJS并没有内置的include功能,而是通过在模板中定义一个自定义的include函数来实现的。因此,在使用include指令之前,需要在程序中定义这个函数。下面是一个例子: ``` const ejs = require('ejs'); const fs = require('fs'); ejs.filters.include = function (path) { const file = fs.readFileSync(path, 'utf8'); return ejs.render(file, this); }; const template = ` <html> <head> <title>Example</title> </head> <body> <% include path/to/other/template.ejs %> </body> </html>`; const data = { name: 'John' }; const output = ejs.render(template, data); console.log(output); ``` 在上面的例子中,我们首先定义了一个自定义的include函数,然后在模板中使用include指令来引入其他模板文件。当渲染模板时,EJS会自动调用include函数来处理这些指令,并将被引入的模板文件和当前模板文件的数据合并起来生成最终的HTML输出。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值