最初我嘗試使用router.post
和router.get
方法,並讓它們在我的代碼中分開。發送相同的數據來查看POST和GET在node.js/Express.js
然後我選擇使用router.all
,和相同的函數內分離POST
和GET
和使用兩個res.render
和公共對象與所述可視數據它們都共享,因爲它會加載相同的屏幕。
我想知道如果這是一個好方法,以及如何這通常是在node.js中/ express.js完成:
router.all('/profile', function(req, res, next) {
var viewData = {
data1: Demo.getdata(1),
data2: Demo.getdata(2),
data3: Demo.getdata(3),
data4: Demo.getdata(4)
};
if (req.method === 'POST') {
request.get({
uri: res.locals.baseUrl + '/getData',
qs: {
param1: param1
}
}, function(error, response, body) {
if (error || response.statusCode != 200) {
viewData.message = 'There was a problem!!';
}
else{
var data = JSON.parse(body);
viewData.message = 'Good job!!';
viewData.moreData= data.moreData;
}
res.render('settings/profile', viewData);
});
}
else{
res.render('settings/profile', viewData);
}
});
我建議保持它分開,因爲我大多數人看到人們明確定義特定路線上的方法並定義它們的回調或用例。如果你使用'router.all',那麼特定的路由將可用於所有的http方法。在一個回調中使用if-else會使你的代碼變得很髒。 –
你會如何處理常見的數據。中間件?一個函數?在可讀性方面這不是那麼糟糕嗎? – Alvaro
您可以使用最適合您的案例的中間件或功能。我個人使用中間件。 –