如何将POST请求重定向到Nodejs中的另一个路由

时间:2016-11-10 07:16:34

标签: ajax node.js redirect post routes

我有一个nodejs服务器应用程序,它为客户端应用程序提供API。 以前,应用程序会将请求对象req.body.action中包含操作参数的AJAX请求发送到主路径(我的意思是&#39; /&#39;)以基于此参数继续操作。 但是,我需要将任何AJAX POST请求的路由从主路由&#39; /&#39;更改/重定向到特定于行动的路由,&#39; / {action route}&#39;。< / p>

N.B。:我希望允许每个未更新客户端应用程序的用户向后兼容以考虑此更改。即,无法修改这些用户的AJAX请求代码。

我在下面尝试过此代码,但它不起作用。

app.use(bodyParser.json() );

app.post('/', function(req, res){
    if( (req.body.action) && (req.body.action === 'action-1')){
        res.redirect(307, '/action-1');
    }
    if( (req.body.action) && (req.body.action === 'action-2')){
        res.redirect(307, '/action-2');
    }
});


app.post("/action-1", function (req, res) {
    //would have proceeded the request for action-1 here but it's not routed
});
app.post("/action-2", function (req, res) {
    //would have proceeded the request for action02 here but it's not routed
});

1 个答案:

答案 0 :(得分:0)

您可以尝试这种方式:

app.use(bodyParser.json() );

app.post('/', function(req, res){
    if( (req.body.action) && (req.body.action === 'action-1')){
        return routes.act1(req, res);
    }
    if( (req.body.action) && (req.body.action === 'action-2')){
        return routes.act2(req, res);
    }
});

app.post("/action-1", routes.act1);
app.post("/action-2", routes.act2);

它不是重定向,但有效。