路由:
? ? ? app.get(“網(wǎng)站”,function(){ })
? ? ? app.post(“網(wǎng)站”,function(){ })
? ? ? 當前端ajax執(zhí)行g(shù)et / post / remove等請求時,運行網(wǎng)站內(nèi)容,回調(diào)給前端信息
模板引擎與render:
????????????app.set("view engine","ejs");
如果報錯:ejs路徑找不到時,應當盡快檢查安裝包的路徑!
? ??????????res.render('index',{
????????????????????"news" : [ "? 我是小新聞啊? "? ,? "? 我也是啊? "? ,? " 哈哈哈哈 " ]本昏,
? ? ? ? ? ? ? ? ? ? "a" : 1,
? ? ? ? ? ? ? ? ? ? "people"? :? [
????????????????????????????????{ "title" :? " 哈哈哈1111 " ,"id"? :? "01"? } ,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { "title" :? " 哈哈哈2222 " 权均,"id"? :? "02"? } ,
????????????????????????????? ??{ "title" :? " 哈哈哈3333 " 驯镊,"id"? :? "03"? }?
? ? ? ? ? ? ? ? ? ? ]
????????????});
ejs單獨模板示例:(在index.ejs中)
????????????<% for(var i = 0 ; i < news.length ; i++){ %>
????????????????????<%= news[i] %>
????? ??????????????<%= people[i] . title %>??
????????????<% } %>
ejs后端模板示例:(在js文件中)
? ??????????//? 模板
????? ? ? ? var? ?string? =? " 好高興啊,今天買了<%=? a%>個香蕉 "
? ??????????//? 數(shù)據(jù)
? ? ? ? ? ? var data? =? {? ? a:8? ? };
? ??????????//? 數(shù)據(jù)綁定
????????????var? ?html? =? ejs.render ( string , data ) ;
? ??????????//? 輸出
? ? ? ? ? ? console.log ( html ) ;
render與send:
render將模板展示出來撒穷,必須有ejs或jade文件配合匣椰,并且注意引包的路徑
send沒有ejs等模板文件,同樣能顯示出來
? 前端form表單與后端的連接:
action:XXX表示前端要提交給后端的操作地址
method:表示要用什么請求post / get
但是提交需要用? input? 的submit屬性發(fā)送給后端
相當于點擊某按鈕后端礼,執(zhí)行ajax操作? ? ??
$.post("XXX",function(){? })禽笑;然后后端路由
?中間件:? ? ? ? (小到大,具體到抽象)
當路由中蛤奥,使用相同的請求佳镜,執(zhí)行相同的路徑時,兩者都執(zhí)行凡桥,
那么需要中間件(????next參數(shù)蟀伸,內(nèi)部執(zhí)行next()????)
(一)
aap.get("/",function( req , res , next ){
? ? ? ? console.log("1111");
? ? ? ? next();
});
aap.get("/",function(){
? ? ? ? console.log("222");
});
(二)
use是特殊的中間件
app.use( " /admin " , function( req,res ){?
//當訪問網(wǎng)址為:? http://127.0.0.1:3000/admin/aa/bb/cc/dd
? ? ? ? ? ? res.send ( req.originalUrl? + " \n " );? ? //? ?返回/admin/aa/bb/cc/dd
? ? ? ? ? ? res.send ( req.baseUrl? + " \n " );?????????//? ?返回/admin
? ? ? ? ? ? res.send ( req.path? + " \n " );? ? ? ? ? ? ? //? ?返回/aa/bb/cc/dd
} ) ;
app.use( " / " , function( req,res ){
????????????//? 任何網(wǎng)址都是/的擴展
})
公共模板:
首先將需要的公共模板? ?剪切到新文件里,如header唬血、footer等
然后再需要的文件里引用????<%? ? include? ? ?header.ejs? ?%>
<body>
? ??????<%? ? include? ? ?header.ejs? ?%>
</body>