路由:
app.get(“网站”,function(){ })
app.post(“网站”,function(){ })
当前端ajax执行get / post / remove等请求时,运行网站内容,回调给前端信息
模板引擎与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%>个香蕉 "
// 数据
var data = { a:8 };
// 数据绑定
var html = ejs.render ( string , data ) ;
// 输出
console.log ( html ) ;
render与send:
render将模板展示出来,必须有ejs或jade文件配合,并且注意引包的路径
send没有ejs等模板文件,同样能显示出来
前端form表单与后端的连接:
action:XXX表示前端要提交给后端的操作地址
method:表示要用什么请求post / get
但是提交需要用 input 的submit属性发送给后端
相当于点击某按钮后,执行ajax操作
$.post("XXX",function(){ });然后后端路由
中间件: (小到大,具体到抽象)
当路由中,使用相同的请求,执行相同的路径时,两者都执行,
那么需要中间件( next参数,内部执行next() )
(一)
aap.get("/",function( req , res , next ){
console.log("1111");
next();
});
aap.get("/",function(){
console.log("222");
});
(二)
use是特殊的中间件
app.use( " /admin " , function( req,res ){
//当访问网址为: 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 ){
// 任何网址都是/的扩展
})
公共模板:
首先将需要的公共模板 剪切到新文件里,如header、footer等
然后再需要的文件里引用 <% include header.ejs %>
<body>
<% include header.ejs %>
</body>