最初,我尝试使用 router.post
和 router.get
方法,并将它们在我的代码中分开。
然后我选择使用router.all
,并在同一个函数中单独的POST
和GET
并使用两个res。 render
和一个公共(public)对象以及它们共享的 viewData,因为它将加载相同的屏幕。
我想知道这是否是一个好的方法以及通常如何在 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.post('/profile', ...)
call res.redirect("/profile");
以便在需要时回退到 GET
。
关于javascript - 发送相同的数据以在 Node.js/Express.js 中的 POST 和 GET 中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42345922/