节点将隐藏的数据传递给其他路由
问题描述:
我有一个快速路由(item/update/
),之后发生的情况是我想将它们发回给/
,我也想让/
显示“成功”或“失败” 。我不想使用查询字符串或哈希,因为我希望它从用户隐藏。我也不想呈现/
在items/update
,因为它似乎是一个坏主意。另外,我已经尝试过javascript历史api,但是这看起来像是历史api的其他功能。节点将隐藏的数据传递给其他路由
如果您需要更多信息,请让我知道。
答
你可以做几种方法,
1.你可以用查询字符串重定向到“/”url。由于您不想在查询字符串中添加数据,因此备用选项是会话。
例如,
function itempUpdateHandler(request,response){
//Do some stuff
request.session.displayMsg = "update done successfully";
response.setHeader("Location: http://yourdomain.com/");
response.end();
}
function homepageHandler(request,response){
//Display message here which is read from session.
if(request.session.displayMsg){
console.log(request.session.displayMsg);
delete request.session.displayMsg;
}
//Do your regular suff here.
}
2.You必须在下面的方法,在这里你都不会重定向某种程度上更照顾,但你需要修改你处理函数如下,
function itempUpdateHandler(request,response){
//Do some stuff
//response.setHeader("Location: http://yourdomain.com/"); //no need here
homepageHandler(request,response, {display:true, msg: "update done successfully"});
}
function homepageHandler(request,response, moreArgs){
//Display message here which is read from session.
if(moreArgs.display){
console.log(moreArgs.msg);
}
//Do your regular suff here.
}
注意:假设您使用快递
尝试会话变量 – 2013-02-11 03:57:41