1.use static or Router
express.static =>Web 伺服器的静态档案置于 public 资料夹 中介城市
use => 挂中介城市
app.use( express.static( "public" ) );
2.EJS
Model = Data (后端)
View = UI (前端) <% %>
Cont roller = Program(使用者请求) (后端)
<% ejs %>
3.EJS安装
npm install ejs
4.EJS 开始使用
程式码:
//不可更动 set(代号,变成ejs) app.set('view engine','ejs') //指令输入 网址 显示内容 app.get("/test",function(req,res){ //render 搭配 app.set('view engine','ejs') res.render("lab",{ })
环境:
Error: Failed to lookup view "lab,{}" in views directory "C:\XXX\Node.js\lab0810express\views"
创资料夹views 建立 .ejs
资料在views内才抓地到
5.EJS 使用 - 注意事项
res.render("lab",{ // /member/lab userName: "王晓明", twoLines: "<script>alert('ok');</script>", twoLines2: "123<br>123", scoreList: [100, 90, 59, 100]} )
<% %> 流程控制标籤 for while ...
<% if (userName == "Guest") { %> <a href="#">Login</a> <% } else { %> <a href="#">Member Center</a> <% } %>
<%= %> 输出标籤(必要时.转译HTML符号)
<%= userName %><br /> <%= Date(); %> <br />
<%- %> 输出标籤(不会转译HTML符号) ==> 使用到HTML、js用
注意,怕资安问题,小心使用
<%- twoLines %> <%- twoLines2 %>
<%# %> 注释标籤
6.嵌入
页首(标题导览)
<%- include() %>
内容
<%= %>
页尾
<%- include(footer) %> <%- include("../shared/footer.txt") %>
7.query.id
ex:
http://localhost:3000/test?id=3
?id=3为使用者输入
app.get("/test", function (req, res) { // 如果找不到ID输出 if (typeof req.query.id === "undefined") { //req.query.id 请求把id处理给我 res.send("ID找不到"); //res回应找不到 } else { res.send(req.query.id); //依照此处案例:3 }})
8. 把HTML的body抓成物件express.urlencoded
app.use(express.urlencoded({extended:true})); //搭配body.userName; app.post("/testPost",function(req,res){ var data = req.body.userName; //抓index.html的body 抓不到 //前面要增加urlencoded物件才抓的到body res.send("我抓到了" + data); })
9. postman 安装
https://www.postman.com/downloads/
测试程式用
不用注册会员 > SKIP
req(Request:请求)与res(Response:回应)
app.get("/test", function (req, res)