Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重定向更新的请求不显示_Javascript_Node.js_Express - Fatal编程技术网

Javascript 重定向更新的请求不显示

Javascript 重定向更新的请求不显示,javascript,node.js,express,Javascript,Node.js,Express,我试图传递更新的请求(req.update),向其中添加一个对象,但当从一个路由(“/”)重定向到另一个路由(“/仪表板”)时,它不会在(req.update)上保存更新 当您使用res.redirect时,它将向客户端发送带有redirect头的响应,然后客户端将启动一个新请求,因此此时所有以前的数据都将丢失 您可以使用app.set()方法设置数据并在其他路径中获取数据 示例。 router.post('/signin' , myAuth, signIn); function signIn

我试图传递更新的请求(req.update),向其中添加一个对象,但当从一个路由(“/”)重定向到另一个路由(“/仪表板”)时,它不会在(req.update)上保存更新


当您使用
res.redirect
时,它将向客户端发送带有
redirect
头的响应,然后客户端将启动一个新请求,因此此时所有以前的数据都将丢失

您可以使用
app.set()
方法设置数据并在其他路径中获取数据

示例。

router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  app.set('userId', req.userId);
  console.log(req.userId, 'woooooooooooooorked');
  res.redirect(303 ,'/dashboard');
} 
或者可以使用
查询字符串
传递数据

示例:


router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  console.log(req.userId, 'woooooooooooooorked');
  res.redirect(303 ,'/dashboard?userId=' + req.userId);
} 


当您使用
res.redirect
时,它将向客户端发送带有
redirect
头的响应,然后客户端将启动一个新请求,因此此时所有以前的数据都将丢失

您可以使用
app.set()
方法设置数据并在其他路径中获取数据

示例。

router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  app.set('userId', req.userId);
  console.log(req.userId, 'woooooooooooooorked');
  res.redirect(303 ,'/dashboard');
} 
或者可以使用
查询字符串
传递数据

示例:


router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  console.log(req.userId, 'woooooooooooooorked');
  res.redirect(303 ,'/dashboard?userId=' + req.userId);
} 


感谢您的回答,我想要的是将/signin route的相同请求对象传递到下一个路由,在本例中为/dashboard。。然后您可以将请求对象保存在
app.set(req)
中。然后在仪表板路线上找到它。正如我在回答中提到的,重定向将向客户端发送响应,然后客户端将创建一个新请求。app.set方法不起作用,查询起作用,但仍然不是我要查找的:(除了用户ID之外,您还想发送哪些其他信息?我不想通过请求对象从一个路由到另一个路由传递数据,我能达到吗?谢谢您的回答,我想要的是将/signin route的相同请求对象传递到下一个路由,即本例中的/dashboard…然后您可以将请求对象保存在
app.set中。)(req)
。并在仪表板路径中获取它。正如我在回答中提到的,重定向将向客户端发送响应,然后客户端将创建一个新请求。app.set方法不起作用,查询起作用,但仍然不是我要找的:(除了userID之外,您还想发送哪些其他信息?我不想通过请求对象从路由到另一个传递数据的路由,我能达到这个目的吗?

router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  console.log(req.userId, 'woooooooooooooorked');
  res.redirect(303 ,'/dashboard?userId=' + req.userId);
} 

router.get('/dashboard' , dashboard) ;

async function dashboard(req ,res ,next){
  console.log(req.userId , '*********');

  let scanResult = await Model.get(req.query.userId);
  console.log(scanResult , 'dashboard');
  res.status(200).send(scanResult);
}