2017-12-18 302 views
0

我已經使用express構建了一個api。在我的路線文件我有:Nodejs,Express,路由

app.route('/getBalances') 
     .post(api.getBalances); 

api.getBalances,取決於參數通過郵局發送稱爲「車輛」獲得第一它是正確的控制器加載並調用其getBalances方法,例如:

var controller = commonModel.getController(query.vehicle.toLowerCase()); 
controller.getBalances(); 

getBalances不是我唯一的入口點,所以我想知道是否可以調用每個入口點的「全局」方法,這樣我就不需要識別正確的每種方法的控制器,但全局方法。

在此先感謝您的幫助。

回答

2

使用將在添加任何api路由之前運行的初步中間件。例如:

// This middleware has to be added first. 
app.use(function(req, res, next) { 

    var query = req.query; // or `req.body`, whatever you like 
    if (query && query.vehicle) { 
    req.controller = commonModel.getController(query.vehicle.toLowerCase()); 
    } 

    next(); // delegate request to the next routes 

}); 

// Now add specific api middlewares. 
app.route('/getBalances') 
    .post(function(req, res) { 

    var controller = req.controller; // we've populated this earlier 
    res.send(controller.getBalances()); 

    }); 

app.route('/anotherMethod') 
    .post(function(req, res) { 

    var controller = req.controller; 
    // etc. 

    }); 
相關問題