ejs官网:ejs - npm (npmjs.com)
ejs模块可以让后端直接写html页面,可以直接传入数据。
npm i ejs -S
引入和使用:
const express = require("express");
const app = express();
// 引入和使用
const ejs = require("ejs");
app.set("view engine", "ejs");
规定:同目录下新建一个views文件夹, 文件夹内新建.esj文件(相当于html文件)。
发起请求:
app.get("/vee", (req, res) => {
// res.render渲染函数---设置查找文件名 res.render(文件名,传入文件的参数)
// 查找的时候 会自动往views文件内部去查找
res.render("index", {
//属性名 : 属性值
laker: "LeBronJames" // 传入文件的参数
})
});
相关说明:
res.render(文件名,传入文件的参数)渲染函数,设置查找文件名。查找的时候会自动往views文件内部去查找。如上例查找index.ejs的文件。
在render函数中可设置属性名及其属性值,成为传入文件的参数。
ejs文件:
Document
一骑红尘妃子笑,无人知是荔枝来。
访问结果:
常用特征:
<% %>
<%= %>
<%- %>
-%>
<%_ _%>
[? ?]``<% %>
)例:将属性名为laker的属性值LeBronJames写入index前端页面
ejs文件:
一骑红尘妃子笑,无人知是荔枝来。
<%= laker %>
使用 <%= %> 转移输出属性名为 laker 的属性值,渲染到前端页面。
我们知道,动态路由的后缀是可以随便定义的,那我们就可以根据用户的输入进行选择对应的数据去渲染页面,我们可以获取动态路由传入的参数,即用户的输入来渲染页面,而且只用一个页面就可以满足许多类似的数据内容。
实例:前端路由后缀输入一个数字n,后端计算0-n之间的偶数,并渲染到前端页面。
后端代码:首先通过req.params的方法获取用户传入的数字,然后计算区间的偶数,再通过res.render方法传递计算结果到前端页面。
app.js文件:
const express = require("express");
const app = express();
app.listen("3000", () => { console.log("3000端口启动"); });
app.use(require("cors")());
const ejs = require("ejs");
app.set("view engine", "ejs");
app.get("/:freeSet", (req, res) => {
let result = req.params.freeSet; // 拿到全部能被2整除的数据
let arr = [];
for (let i = 0; i <= result; i++) {
if(i % 2 == 0){
arr.push(i);
};
};
res.render("index", {
// 将结果传入对应文件
c_num: arr,
})
});
前端代码: 可以在控制流 <% %> 里面写js代码,通过属性名循环遍历得到后端传过来的数据;然后通过 转义输出 <%= %> 将外部传入的参数渲染到页面中。
index.ejs文件:
<% for(let i = 0; i < c_num.length; i++){ %>
- <%= c_num[i] %>
<% } %>
示例结果:后缀输入13
注意:
node_modules文件夹删除后代码不能运行, 可在终端输入npm i,系统会根据你的package.json文件自动下载依赖,package-lock.json 用于锁定依赖版本。