我已将 app.js 配置为将所有请求重定向到我的 controller.js 。 以下是我的 controller.js 的示例。
router.all('/Controller/:id', controller);
function controller(req, res){
//db check using the id mentioned in the url. And gets some values.
//Say it is stored in data variable.
var URL = "SOMEURL";
if(data != null){
if(data.METHOD == "POST"){
// needs to redirect as HTTP POST with URL.
}else{
res.redirect(URL);
}
}else{
console.log('No Data Found to redirect');
}
}
如果 data.METHOD 是 POST ,您可以看到我需要重定向到特定的 URL 。我尝试了 res.redirect ,但它提供的只是一个 GET请求。那么如何将 HTTP POST 重定向到特定网址?请提供你的想法。
感谢和问候。
答案 0 :(得分:0)
如果为每种条件设置单独的方法会更好。
一个用于GET,一个用于POST,PUT等。这样您就可以拥有可测试的代码而不会违反单一责任原则
router.get('/Controller/:id', controller.GetData);
router.put('/Controller/', controller.UpdateData);
router.post('/Controller/', controller.SaveData);
对于put和post,您可以在request.body
中传递数据答案 1 :(得分:0)
谢谢你们..
找到了答案。
所有我需要做的是重定向307 HTTP状态。以下内容将重定向到路由器。
res.redirect(307, URL);