现在我遇到了在nodeJS服务器上管理ajax请求的问题。目前我有这个系统可以工作,但它很难看而且效率不高。
router.post('/get', function(req, res) {
var request = req.body.request;
if (request == null) {
res.json({success: 'false', error: 'Response returned null'});
return;
}
if (request == "render_page") {
var page = req.body.page;
if (page == null) {
res.json({success: 'false', error: 'Page returned null'});
return;
}
res.render(page);
} else if (request == "render_article") {
var temp = {
articles: [
{title: 'ABC', text: 'This is a test article'},
{title: 'XYZ', text: 'Just another random article'}
]
};
res.render('template/article-format', temp);
} else {
res.json({success: 'false', error: "Unknown request " + request});
}
有没有更好的方法来做到这一点,甚至可能让它变得动态?如果出现问题,服务器也会喜欢崩溃,所以就是这样。
答案 0 :(得分:1)
你似乎在与GET和POST的概念作斗争。 GET请求应该用于获取内容(如页面)。但是,您已指定POST请求,然后将其命名为/ get,然后将上下文放入请求正文中。
如果您只是在GET请求中使用了一些参数,那么您不需要发送带有正文的帖子(我假设您正在使用POST请求,因为您认为您需要能够发送请求上下文数据,在本例中为页面名称。)
因此,您有一堆被称为post请求的get请求。真的你想要的是这样的:
router.get('/page/:page', function(req, res) {
var page = req.params.page;
// Logic here
});
为了处理“null”页面,你只需将它们自动路由到/ page url(因为如果没有参数,它只是/ page url)。
为了进一步阅读,我会查看: