【js】ejs

什么是ejs

"E" 代表 "effective",即【高效】。EJS 是一套简单的模板语言,帮你利用普通的 JavaScript 代码生成 HTML 页面。EJS 没有如何组织内容的教条;也没有再造一套迭代和控制流语法;有的只是普通的 JavaScript 代码而已。

特点

  • 快速编译与绘制输出
  • 简洁的模板标签:<% %>
  • 自定义分割符(例如:用 <? ?> 替换 <% %>)
  • 引入模板片段
  • 同时支持服务器端和浏览器 JS 环境
  • JavaScript 中间结果静态缓存
  • 模板静态缓存
  • 兼容 Express 视图系统

ejs的使用

1、使用npm安装ejs

$ npm install ejs

2、新建index.ejs

index.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><%= title %></title>
</head>
<body>
    <%= index %>
</body>
</html>
复制代码

 3、引入ejs模块

const ejs = require('ejs');

4、渲染ejs

复制代码
const http = require('http');

http.createServer((req, res) => {
    if (req.url === '/') {
        res.writeHead(200, {
            'Content-Type': 'text/html' 
        });
        // 渲染文件 index.ejs
        ejs.renderFile('./views/index.ejs', {
            title: 'ejs-index',  // 渲染的数据key: 对应到了ejs中的title
            index: '首页'},  // 渲染的数据key: 对应到了ejs中的index
            (err, data) => {
            if (err ) {
                console.log(err);
            } else {
                console.log(data);
                res.end(data);
            }
        })
    }
}).listen(3002);
复制代码

 5、koa使用ejs

配置koa-views

复制代码
const koaViews = require('koa-views');

// 配置渲染文件路径 及文件后缀
app.use(koaViews('./views', {
    extension: 'ejs'
}));
// 响应路由渲染文件

router.get('/', async ctx => {
    await ctx.render('index', {
        title: 'ejs-index', // 渲染的数据key: 对应到了ejs中的title
        index: '首页'}, // 渲染的数据key: 对应到了ejs中的index
    });
});
复制代码

 6、语法

  • <% :'脚本' 标签,用于流程控制,无输出
  • %> :一般结束标签
  • <%= :输出数据到模板(输出是转义 HTML 标签)
  • <%- :输出非转义的数据到模板

相关资料:

posted on   smile轉角  阅读(278)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

导航

统计

点击右上角即可分享
微信分享提示