node应用层中间件使用

var express = require("express")
var path = require("path")
var app = express()

app.use(function (req, res, next) {
    console.log("中间件1执行")
    next()
})

// app.use("/user/:id", function (req, res, next) {
//     console.log("中间件2执行")
//     res.send("OK")
// })

// app.get("/user/:id", function (req, res, next) {
//     console.log("中间件2执行")
//     res.send("OK")
// })

// app.get("/user/:id", function (req, res, next) {
//     console.log("中间件2执行")
//     //res.send("OK")
//     if(req.params.id=='0'){
//         //放弃当前路由中的中间件函数的执行,将控制权交给下一个匹配的路由处理
//         next("route")
//     }else{
//         next()
//     }
// }, function (req, res, next) {
//     console.log("中间件3执行")
//     res.send("regular")
//     //next()
// })

// app.get("/user/:id", function (req, res, next) {
//     console.log("中间件4执行")
//     res.send("special")
// })

function middleware2(req, res, next) {
    console.log("中间件2执行")
    next()
}
function middleware3(req, res, next) {
    console.log("中间件3执行")
    next()
}
var middlewares = [middleware2, middleware3]
app.get('/user/:id', middlewares, function (req, res, next) {
    console.log("中间件4执行")
    res.send('OK')
})

//静态资源处理
// app.use('/static', express.static('public'))
app.use('/static', express.static(path.join(__dirname, 'public')))
app.use(express.static('uploads'))

app.listen(3000, () => {
    console.log("服务已启动。port:3000")
})
posted @ 2021-02-19 09:40  abcdefgab  阅读(124)  评论(0)    收藏  举报