如何驗證路徑? ——use函數
學習教材:六角學院/ NodeJS 前後端開發實戰(講解非常清楚&可以問到飽,大推!)
//其他邏輯省略
app.use(function (req, res, next) {
console.log("有人連線囉")
next()
})
app.get("/user/:name", function (req, res) {
var Myname = req.params.name
res.send(Myname + "你好")
})
- use中可以寫一些邏輯去進行判斷,如果OK,就執行next()
- 如果沒有next(),就永遠無法連到”/user/:name”路徑上
//其他邏輯省略
app.get("/user", function (req, res) {
res.send("你好")
})
app.use(function (req, res, next) {
console.log("有人連線囉")
})
app.get("/user/:name", function (req, res) {
var Myname = req.params.name
res.send(Myname + "你好")
})
第一個路徑可以被輸出
但第二個路徑因為通不過app.use的next(),所以會連不上
如果根本沒有這個路徑,也可以用use()函數告訴使用者
- res.status(404) :回傳錯誤訊息
app.use(function (req, res, next) {
console.log("有人連線囉")
next()
})
app.get("/", function (req, res) {
res.send("你好")
})
app.use(function (req, res, next) {
res.status(404).send("找不到頁面")
})
如果程式錯誤err,可以用use()函式
app.get("/", function (req, res) {
res.send("你好")
})
//use(1)
app.use(function (req, res, next) {
console.log("連線囉")
kk() //因為這是錯誤程式碼,所以會自動跳到use(3) -->這是express的規則
//這行如果刪掉就可以跑use(2)
next()
})
//use(2)網站通常會加上這兩條程式碼
app.use(function (req, res, next) {
res.status(404).send("找不到頁面")
})
//use(3) 網站通常會加上這兩條程式碼
app.use(function (err, req, res, next) {
res.status(500).send("程式有問題")
})
get和use的整合寫法
//省略連線
//把use獨立寫出來
var login = function (req, res, next) {
console.log("有人連線囉")
//裡面可以做一些邏輯判斷
next()
}
app.get("/", login, function (req, res) {
res.send("你好")
})
利用use()和static()增加靜態檔案
在專案下設定一個公開資料夾
app.use(express.static("public")) //把publuc資料夾設立為靜態檔案的「根目錄」
app.get("/", function (req, res) {
res.send("你好" + "<img src='/images/logo.png'></img>")
//引入logo的路徑
})
沒有留言:
張貼留言