Express的学习从安装、Route和Middleware的概念开始,今天要进入前端实务面的部份:Template(样板)。
样板在前面NodeJS的部份也有说明过,简而言之就是可以透过placeholder或一些语法动态变更内容的HTML页面。在Express中要使用样板需要透过样板引擎(Template Engine),就如同其他的NPM套件,适用於Express的样板引擎也不少,例如:受欢迎的Jade、与.NET Webform的FormView语法相似的ejs、与.NET MVC的Razor语法相似的vash等,开发人员可以选择自己喜好的样板引擎,这里的范例是使用ejs练习。
实作静态样板档
let express = require("express");
let app = express();
let port = process.env.PORT || 2000;
app.use("/assets", express.static(`${__dirname}/public`));
app.get('/', (req, res)=>{
res.send("<html><head><link href=assets/style.css type=text/css rel=stylesheet /></head><body><h1>Hello</h1></body></html>");
});
app.get("/job/:type", (req, res)=>{
res.send(`<html><head></head><body><h1>Job: ${req.params.type}</h1></body></html>`)
});
app.listen(port);
npm install
安装,然後在主程序中设定样板引擎。由於样板引擎与Express会自动产生关联,在设定样板引擎时,是用app.set()
的方法,而不是require()
。app.set("view engine", "ejs");
index.ejs
的样板档案。<html>
<head>
<link href="/assets/style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<h1>Hello</h1>
</body>
</html>
app.get()
中回传页面的res.send()
改成res.render(<样板档档名>)
,会令Express查询并取得样板档,在render()
里面也不需要使用副档名,Express会依据不同的样板引擎查找不同副档名的档案。// 原始程序码 ------------------------
// app.get('/', (req, res)=>{
// res.send("<html><head><link href=assets/style.css type=text/css rel=stylesheet /></head><body><h1>Hello</h1></body></html>");
// });
app.get('/', (req, res)=>{
res.render("index");
});
实作动态样板档
<html>
<head>
<link href="/assets/style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<h1>Job</h1>
</body>
</html>
<% = TYPE%>
可以加入动态变数ID。<html>
<head>
<link href="/assets/style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<h1>Job: <%= TYPE %></h1>
</body>
</html>
app.get()
中回传页面的res.send()
改成res.render(<样板档档名>)
,并在Path後面加入样板的变数名称引入URL中的参数,变数名称会对应到样板档中的对应名称并将变数代入,成为动态样板档。// 原始程序码 ---------------------------------------
// app.get("/job/:type", (req, res)=>{
// res.send(`<html><head></head><body><h1>Job: ${req.params.type}</h1></body></html>`)
// });
app.get("/job/:type", (req, res)=>{
res.render("job", {TYPE: req.params.type})
});
作为一个网页应用系统的框架,Express提供多样的样板引擎可供选择,让前端页面的变化可以更多样,同时也让资料的呈现更方便,像是变数的传递以及更新。
https://www.npmjs.com/package/ejs
Learn and Understand NodeJS [课程]
首先我先简单介绍我这30天的规划,先大致分为4个星期。 第一周 :规划主要需要的功能,列出清单大致会...
有关骇客入侵窃取公务信箱帐密一事,经查非直接从疾管署系统中外泄 有关骇客入侵窃取公务信箱帐密一事,经...
创建App-主页界面 在登入页面设计、建设完成後,进入第二个页面建设啦。主页包括了广告,作业、讨论区...
上一篇我们的基因体时代-AI, Data和生物资讯 Day06-蛋白质结构和机器学习01我们继续分享...
教材网址 https://coding104.blogspot.com/2021/06/java-f...