express的中间件和ejs
ejs——express的渲染模板
就像java和jsp一样,node和ejs也是一样的道理,node负责控制数据、接口、路由,而ejs负责渲染。
要使用ejs,可以这么来
1.npm install ejs --save
2.app.set(“view engine”,“ejs”)
3.进行使用(默认使用文件夹为views)
res.render(“index”,{
//要传入的数据})
如果要使用ejs传数据,可以这样做
1.首先,在文件夹根目录下创建一个叫views的文件夹
2.在views里创建你喜欢的名称.ejs(我的叫index.ejs)
3.在路由里传参
以下是示例
这里是app.js(也就是主文件)
app.get("/",(req,res)=>{
let title="hello ejs!",
res.render("index",{
title:title
})
})
这里是index.ejs文件(的部分代码)啦
<body>
<p><%=title%></p>
</body>
这样就可以把数据传进来了,那如果想要使用其他的js语法来表达,就把"=“换成其他的符号,比如:
1.如果你想让浏览器解析一段html代码,就换成”-",比如是这样传值的
app.get("/",(req,res)=>{
let title="<h1>helle world</h1>",
res.render("index",{
title:title
})
})
2.如果你想写js表达式,可以这样
<%if(flag==true){%>
<strong>我也许可以显示出来</strong>
<%}%>
也就是说,可以用ejs代码包裹着html代码进行操作,同样的,我们在使用<%%>的时候也要让js代码里的花括号能闭合起来。if语句也能根据传值来进行判断,与正常的js无异。
把ejs后缀换成熟悉的html
1.在app.js的上部定义
let ejs=require("ejs")
2.注册html模板引擎
app.engine("html","ejs__express")
3.将模板引擎换成html
app.set("view engine","html")
4.把ejs的后缀改成html