node.js---EJS 模板引擎

什么是模板引擎

模板引擎是分离 用户界面和业务数据 得一种技术

什么事 EJS

EJS 是一个高效的 JavaScript 得模板殷勤

EJS 初体验

下载:

npm i ejs --save

引用

const ejs = require('ejs')

配置

app.set("views",__dirname+"/view");//设置视图的路径
app.set(" view engine","ejs")//引擎
app.set("views",__dirname+"/view");
app.engine("html",myejs.__express)
app.set(" view engine","html")

注:ejs不能直接进入,必须通过拦截,通过response.render()进行视图显示

const ejs = require('ejs')

let str = 'hello'
let word = `${str} world`
let person = ['anna', 'bob', 'lily']

let result = ejs.render('hello <%= word%>', { str: str })

// ==> hello world

EJS 常用标签
  • <%-%>:输出没有转译后的变量值
  • <%%>:对应语法
  • <%=变量名%>读取变量值
列表渲染
const person = ['anna', 'bob', 'lily']

// let str = '<ul>'
// person.foreach(item => {
//   str += `<li>${item}</li>`
// })

// str += '</ul>'

// console.log(str)

// ejs 实现
let result = ejs.render(`<ul>
  <% person.foreach(item => { %>
    <li><%= item %></li>
  <% }) %>
</ul>`, { person: person })

抽离:

<ul>
  <% person.foreach(item => { %>
    <li><%= item %></li>
  <% }) %>
</ul>
const person = ['anna', 'bob', 'lily']

let fs = require('fs')
let personFile = fs.readFileSync('./person.html').toString()
// ejs 实现
let result = ejs.render(personFile, { person: person })
条件渲染
let isLogin = false
let result = ejs.render(`
  <% if(isLogin){ %>
  <span>欢迎回来</span>
  <% }else{ %>
  <button>登录</button>
  <% } %>
`, { isLogin: isLogin })
express 中使用 ejs
const express = require('express')
const app = express()
const path = require('path')
// 设置模板引擎
app.set('view engine', 'ejs')
// 设置模板文件存放位置  模板文件:具有模板语法内容的文件
app.set('views', path.resolve(__dirname, './views'))

app.get('/home', (req, res) => {
  // render 响应
  let title = 'title'
  res.render('home', {title})
  // 创建模板文件
  
})

views/home.ejs

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <h1><%= title %></h1>
</body>

</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Node.js是一个建立在谷歌V8引擎的运行环境,用于解析和执行JavaScript代码。它使得JavaScript不再局限于浏览器环境,可以在后端创建动态数据。\[1\]严格来说,Node.js不是一个框架,而是一个平台。它的技术栈包括核心模块、框架(如Express、KOA)、模板引擎(如Pug、EJS)、编译型CSS(如Lass/Sass/Stylus)和数据库(如MongoDB、MySQL)等。\[2\] Node.js的基础知识包括了如何执行另一个模块中的功能。例如,在一个模块中使用require函数引入另一个模块,然后可以调用该模块中的功能。例如,如果有一个b.js模块和一个first.js模块,可以在first.js模块中使用require('./b')来引入b.js模块,并调用其中的功能。执行node first.js即可运行该程序。\[3\] #### 引用[.reference_title] - *1* [【入门级基础】Node基础知识总结](https://blog.csdn.net/pakerder/article/details/125191636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [node.js基础知识](https://blog.csdn.net/weixin_45459904/article/details/107508639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡夫卡的小熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值