我尝试在重定向到另一个页面后向页面发送变量。我在Node.js中有非常基本的知识,似乎无法找到一种方法。这是我的代码。
app.get('/search' , function (req, res) {
var postcode = req.query.search;
var ward = my_search.getWardNum(postcode,(ward) => {
res.redirect('/:ward'+ ward);
});
});
app.get('/ws/:postcode' , function (req, res) {
var postcode = req.params.postcode.replace("+","");
console.log(pc);
my_search.postcodeLookUp(pc,(ward) => {
var area = my_search.lookupWard(ward);
res.send(area);
});
});
因此,在第一个app.get()
中,我获得了邮政编码并重定向到另一个页面。
但是,我仍然需要第二个app.get()
的邮政编码。
我知道node.js的本质是异步的。有办法做我想做的事吗?
答案 0 :(得分:1)
当您"重定向"时,您不仅要更改用户看到的网址,而且还要发送带有状态代码的HTTP响应,指示客户端应尝试访问另一个改为翻页。
重定向后您无法发送数据,因为已经发送了完整的响应!你应该考虑为什么你重定向,如果真的有必要的话。您还可以重定向到包含您想要出现的URL参数的路由:
res.redirect('/ward/' + ward + '/' + postcode);
...
app.get('/ward/:wardID/:postcode', (req, res, next) => {
// route code here...
});
请注意,您可能想要比这更漂亮的格式,但这是实现此目的的一种方法。