koa 基础(九) ejs 模板引擎的使用
1.app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | /** * ejs 模板引擎的使用: * 1.npm install koa-views --save * 2.npm install ejs --save * 3.var views = require('koa-views'); * app.use(views(__dirname, { extension: 'ejs' })) * 4.await ctx.render('index') * * 注意:我们需要在每一个路由的render里面都要渲染一个公共的数据 * 公共的数据放在这个里面,这样的话在模板的任何地方都可以使用 * * ctx.state = { // 放在中间件 * session: this.session, * title: 'app' * } */ // 引入模块 const Koa = require( 'koa' ); const router = require( 'koa-router' )(); /*引入是实例化路由 推荐*/ const views = require( 'koa-views' ); // 实例化 let app = new Koa(); // 配置模板引擎中间件 -- 第三方中间件 // app.use(views('views', { // extension: 'ejs' /*应用ejs模板引擎 模板的后缀名是 .ejs*/ // })) // 这样配置也可以 注意如果这样配置的话 模板的后缀名是 .html app.use(views( 'views' , { map: { html: 'ejs' } })); // 写一个中间件配置公共的信息 app.use(async (ctx, next) => { ctx.state.userInfo = '张三' ; await next(); /*继续向下匹配路由*/ }) router.get( '/' , async (ctx) => { let title = '你好 ejs' ; await ctx.render( 'index' , { title: title }) }) router.get( '/news' , async (ctx) => { // ctx.body = '这是一个新闻'; let list = [ '111' , '222' , '333' ]; let content = "<h2>这是一个h2</h2>" ; let num = 123; await ctx.render( 'news' , { list: list, content: content, num: num }) }) app.use(router.routes()); app.use(router.allowedMethods()); /** * router.allowedMethods() 作用:这是官方文档的推荐用法,我们可以 * 看到 router.allowedMethods() 用在了路由匹配 router.routes()之后, * 所以在当所有路由中间件最后调用,此时根据 ctx.status 设置 response 响应头 */ app.listen(3000); |
2.views
index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <! 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 >Document</ title > </ head > < body > <% include public/header.html%> 这是一个ejs的模板引擎 < h2 > <%=title%>------ <%=userInfo%> </ h2 > </ body > </ html > |
news.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <! 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 >Document</ title > </ head > < body > < h2 >ejs循环渲染数据 ------ <%=userInfo%> </ h2 > < ul > <%for(var i=0;i< list.length ; i++){%> < li > <%=list[i]%> </ li > <%}%> </ ul > < h2 >绑定html数据</ h2 > < br /> <%=content%> < br /> <%-content%> < br /> < h2 >条件判断</ h2 > <%if(num > 24){%> 大于24 <%} else {%> 小于24 <%}%> </ body > </ html > |
header.html
1 | < h2 class="title">这是一个头部的模块</ h2 > |
.
标签:
koa
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· BotSharp 5.0 MCP:迈向更开放的AI Agent框架
· 分享 3 款基于 .NET 开源且免费的远程桌面工具
· 在线聊天系统中的多窗口数据同步技术解密
· 2025,回顾出走的 10 年
· 【保姆级教程】windows 安装 docker 全流程
2018-05-14 mock.js 的用法 -- 脱离后端独立开发,实现增删改查功能
2017-05-14 mui 侧滑菜单