节点将隐藏数据传递给其他路由

时间:2013-02-11 02:15:31

标签: node.js express routes hidden

我有快递(item/update/)的路线,之后我想将它们发回/,我也希望/显示'成功的提醒'或'失败'。我不想使用查询字符串或哈希,因为我希望它对用户隐藏。我也不想在/处呈现items/update,因为这似乎是一个坏主意。此外,我已经尝试了javascript历史api,但这似乎是一个黑客,因为历史api是其他东西。

如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

你可以做几种方式,

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.你必须在以下方法中多加注意,这里你不会重定向,但你需要修改你的处理函数,如下所示,

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.
}

注意:假设您使用快递