1. 程式人生 > >nodejs常用框架express的中介軟體 及app.use 和 app.get 方法

nodejs常用框架express的中介軟體 及app.use 和 app.get 方法

用node開發專案,express是常用的框架,下面介紹下核心用法中介軟體和 app的use、get方法:

中介軟體的實現很簡單:

// 一個簡單的中介軟體
function middleware(req, res, next){
    // req 引數可以接受一些請求的引數(req.query/req.body) 和 請求頭資訊
    // res 用於響應資訊
    // 呼叫next()方法則進入下一個中介軟體
}

// 幾種常見的呼叫方式
app.use(middleware);
app.use('/user',middleware); // 匹配部分路徑
app.get('/login',middleware);

接下來是app.get/use的一些使用:

app.get(path,function); // 接收兩個引數 路徑 和 一個回撥函式
app.use(path,function/router); // 也是接收兩個引數 路徑和get的區別是第二個可以放回調函式或者router物件

//值得注意的是,path如果忽略,如:app.use(function/router);也是合法的寫法,表示匹配所有的路徑

關於path和function的寫法,如下示例:

// get 訪問示例會匹配/app和其子集路徑,如:http:127.0.0.1:3000/app 以及http:127.0.0.1:3000/app[/aa/bb...等等]都會匹配
app.get('/app',(req, res, next) => {
    //TODO SOMETHING...
});

//use 路由匹配和get方法一樣
app.use('/app',(req, res, next) => {
    //TODO SOMETHING...
});

//另一種寫法
app.use((req, res, next) => {
    //TODO SOMETHING...
});

 但是我們經常見的還有這種寫法:

const session = require('express-session');

app.use(session({
    secret: 'test01',
    resave: false,
    saveUninitialized: false
}));

其實背後的實現也很簡單,返回一個類(req,res,next)=>{}函式就行了,例:

// 實現思路
app.use(myFunction());

function myFunction(){
// 做一些處理
    return (req, res, next) => {
        next();
    }

}

感謝您的閱讀!如果文章中有任何錯誤,或者您有更好的理解和建議,歡迎和我聯絡!