首页 > 解决方案 > 有没有办法从一个路由重定向到另一个路由,数据从 node.js 中的第一个路由到第二个路由?

问题描述

我想知道的是是否可以使用从第一条路线到第二条路线的数据从一条路线重定向到另一条路线?例如,从 HTML 表单中,我将数据(例如电话号码)发布到路线(例如“/route1”),并且在此路线上成功操作后,我想将电话号码从“route1”发送到“/route2”。如果有可能,那我该怎么做?

标签: node.jsexpressroutes

解决方案


我想知道的是是否可以使用从第一条路线到第二条路线的数据从一条路线重定向到另一条路线?

一旦您的数据发布无误,您可以通过这种方式重定向客户端:

// POST data
app.post('/oneRoute', function(req, res) {

    let myData = new MySchema();
    myData.phoneNumber = req.body.phoneNumber;

    // save data to DB then redirect to /anotherRoute
    myData.save(function(err) {

        if (err) {
            // error
        } else {
            // redirect path
            res.redirect('/anotherRoute');
        }
    });
});

然后,如果您想在重定向 URL 的查询参数中传递数据,您可以:

        (...)

        } else {
            // redirect path + query parameter
            res.redirect('/anotherRoute?phonenumber='+req.body.phoneNumber);
        }

        (...)

接下来是什么 ?您可以从重定向路径的 url 中获取查询字符串...

        http://localhost:3000/anotherRoute/?phonenumber=6876766242425

注意:正如 jfriend00 的回复中提到的此解决方案是干净且无状态的,数据可供客户端或服务器使用。

另请参阅res.redirect()req.query

Session :以不同的方式,如果你想在服务器端存储数据,你可以使用Simple session middleware for Express包...


推荐阅读