我想知道的是,是否有可能从第一条路线到第二条路线的数据从一条路线重定向到另一条路线?例如,从HTML表单中,我将数据(例如电话号码)发布到路由(例如“ / route1”),并且在此路由成功操作后,我想将电话号码从“ route1”发送到“ / route2”。如果有可能,那我该怎么办?
答案 0 :(得分:0)
有多种方法可以在重定向中传递数据。
http://www.whatever.com/somePath?ph=123-456-1234
上的查询参数中。呈现重定向页面时,服务器或客户端都可以访问数据。在这些选项中,第一个是干净的,因为它是无状态的,并且数据可用于客户端或服务器。它也不需要任何临时的服务器端存储。
答案 1 :(得分:0)
我想知道的是,是否有可能将数据从第一条路由重定向到另一条路由到第二条路由?
一旦数据发布无误,您可以通过以下方式重定向客户端:
// 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);
}
(...)
下一步是什么?您可以从重定向路径的网址获取查询字符串...
http://localhost:3000/anotherRoute/?phonenumber=6876766242425
注意:如jfriend00的reponse所述,此解决方案干净无状态,数据可用于客户端或服务器。
会话:以另一种方式,如果您想在服务器端存储数据,则可以使用Simple session middleware for Express包...