最初我尝试使用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
您可以使用最适合您的案例的中间件或功能。我个人使用中间件。 –