2017-01-31 64 views
2

我目前有一個正在運行的服務器,使用nodejs,mongo,express和W2UI作爲前端。 W2ui請求進入一個記錄陣列,其中包含所有參數 record [name]:foo 我想寫一箇中間件,它編輯請求並在到達路由之前對其進行更改。表示中間件修改請求

回答

4

您可以創建自己的中間件來操縱請求。我創建了一箇中間件,增加了當前服務器的時間來這樣

var addDate = function(req, res, next) { 
    req.body.date = new Date(); 
    next(); 
} 

請求現在,我可以用這個中間件這樣所有的請求:

app.use(addDate); 

,或者像這樣的spesific路線

app.get('/', addDate, function(req, res) { 
    res.send(req.body); 
}); 

從GET請求的響應將是

{ 
    "date": "2017-01-31T11:46:37.003Z" 
} 
-1

可以在http.js做到這一點,創建一個函數來修改請求在你想要的方式,然後給它以陣象下面這樣: -

order: [ 
    'startRequestTimer', 
    'cookieParser', 
    'session', 
    'bodyParser', 
    'xframe', 
    'handleBodyParserError', 
    '**myRequestLogger**', 
    'compress', 
    'methodOverride', 
    // 'poweredBy', 
    '$custom', 
    'router', 
    'ravenRequestHandler', 
    'ravenErrorHandler', 
    'www', 
    'favicon', 
    '404', 
    '500' 
], 

myrequestLogger就是在這裏登陸請求的功能。