如何将Node js重定向作为HTTP POST?

时间:2017-10-04 14:10:24

标签: javascript node.js express

我已将 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 重定向到特定网址?请提供你的想法。

感谢和问候。

2 个答案:

答案 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);