node框架express基礎
Express是一個基於Node.js平臺的web應用開發框架,在Node.js基礎之上擴展了web應用開發所需要的基礎功能,從而使得我們開發Web應用更加方便、更加快捷。
註意:我們用jQuery時,jquery對象和dom對象 方法是不能混用的。但Express中,可以用一些原生node。
比如在express中用了get方法,res.send 可以寫成 res.end。
不過send中是不需要轉成str或者buffer的,並且不區分大小寫。
下載Express
npm install express --save
創建一個express應用:
let express = require("express"); let app= express();
模板引擎 ejs/jade 下面使用ejs
在Express中推薦使用模板引擎
用前也需要下載 npm install ejs --save
模板引擎的使用:
var ejs = require("ejs"); //模板 var string = "今天星期<%= day %>,天氣真好"; //數據 var data = { day : "三" } // 數據綁定 var html = ejs.render(string,data); console.log(html); //今天星期三,天氣真好
通過ejs模板:
1.在後臺寫好數據
var express = require("express"); var app = express(); //不需要引入ejs、fs、http app.set("view engine","ejs"); app.get("/",function(req,res){ var data = { day:"三", news:[ {"title":"haha","num":300}, {"title":"xixi","num":100}, {"title":"hehe","num":100}, ] } res.render("haha",data) }) app.listen(3000);
2.創建views文件夾,在views文件夾中創建 haha.ejs 文件
3.在haha.ejs文件中寫模板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1>今天星期<%= day %>,天氣真好</h1> <ul> <% for(var i = 0;i < news.length;i++){ %> <li><%= news[i].title %></li> <li><%= news[i].num %></li> <% } %> </ul> </body> </html>
模板中語法格式如上。
在頁面中顯示結果:
今天星期三,天氣真好
- haha
- 300
- xixi
- 100
- hehe
- 100
Express中間件
用中間件中的內置方法static來配置靜態伺服
app.use(express.static(__dirname + ‘
/app‘
))
瀏覽器中訪問: http://localhost:3000/ 展示的/app/index.html內容
瀏覽器中訪問: http://localhost:3000/hello.html 展示的/app/hello.html內容
中間件基本用法:
在下面這種情況下,第二個地址永遠進不去,因為下面地址的路由滿足上面的正則,所以按照代碼執行順序,到上面get方法就停止了。只會顯示 用戶+編號界面
var express = require("express"); var app = express();
app.get("/:username/:id",function(req,res,next){
res.send("用戶+編號界面")
})
app.get("/admin/login",function(req,res){ //這個地方永遠進不去
res.send("管理員登錄界面")
})
app.listen(3000);
但如果給上面的get方法中加上next()
app.get("/:username/:id",function(req,res,next){ next() })
再在/admin/login中顯示的就是 管理員登錄界面
如果在第一個get方法打印1,第二個get方法打印2,則都可以打印出來。
用Express獲取get參數
var express = require("express"); var app = express(); app.get("/",function(req,res){ console.log(req.query); res.send("OK") }) app.listen(3000)
原生獲取方法:url.parse(req.url,true).query
用Express獲取post參數
1.設置post請求的請求頭
var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false })); //post請求的請求頭
2.在post方法中打印 req.body 即可
req.body 輸出的是 一個對象
比如 {name:"123456",age:"4156789"}
node框架express基礎