繁体   English   中英

尝试通过 post 方法从另一条路线访问在一条路线中声明的 express req.session.variable

Trying to access express req.session.variable declared in one route from another route via post method

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我假设每个节点应用程序只有一个 session 变量,我试图从另一条路线访问 session object 中设置的值

请帮我解决这个问题

app.post(/OTP) 一条路线

 function OTPgenerator(req,res,next){
    var string = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
    
    let OTPvalue='';
   // Find the length of string 
   var len = string.length; 
   for (let i = 0; i < 8; i++ ) { 
       OTPvalue += string[Math.floor(Math.random() * len)]; 
   } 
 console.log(OTPvalue,"OTP value");
 req.OTP=OTPvalue;
 req.session.OTP=OTPvalue;
 req.session.save();
 console.log(req.session); //this gives me value of session having OTP in it
 next();
 


  app.post('/OTP',OTPgenerator,(req,res)=>{

 const OTP={
     username:req.body.username,
     useremail:req.body.useremail,
     OTP:req.OTP
 }
    confirmation_email(OTP)
    .then((resp)=>{
        console.log("this is from the user info ",resp);
     
   
     
      res.send(req.session);

      
    })
    .catch((err)=>{
        console.log("this is the error ",err);
    })
})

另一条路线(/提交)

app.post('/submit',
(req,res)=>{
    

console.log(req.session,"session") //the session here doesn't contain value of defined before

 if(req.body.OTP!=null){
    if(req.session.OTP===req.body.OTP){

   
    const data=new userdata({
        _id:mongoose.Types.ObjectId(),
        username:req.body.username,
        userpassword:req.body.userpassword,
        userage:req.body.userage,
        useremail:req.body.useremail
    })

      
    connectiondb()
    .then(async(resp)=>{
      console.log("Result of the connection",resp);
      await data.save()
      .then(resp=>{
          console.log("this is response",resp);
          res.status(200).send("data successfully saved")
          
      })
      .catch(err=>{
          console.log("data is not saved ",err)
      })
      
      

    })
    .catch(err=>{
        console.log("thei si the error ",err);
        res.sendStatus(500);
    })

  
 }

else if(req.body.OTP===''){

    console.log("OTP cannot be null");
    res.status(422);
}
else{
console.log('OTP is invalid');
res.status(422).send(req.session);


}




 }
 else{
     res.status(500);
 }
     

    
  
})
//for signin   

这是我的 session object 配置

     const db='mongodb+srv:xxxxx';
        const obj={
         useNewUrlParser:true,
           useUnifiedTopology:true
        }

        const connection=mongoose.createConnection(db,obj);

    const sessionStore=new MongoStore({
         mongooseConnection:connection,
         collection:'usersessions'
        })

  app.use(session({
    secret: 'keyboard cat',
    resave: true,
    saveUninitialized: false,
    store: sessionStore,
     cookie:{
          secure:true
     }
   }))
  • 我尝试了很多但没有任何效果,当我在 /OTP 路由中控制台 req.session.OTP 时,它给了我 OTP 的值,但是当我尝试使用 /Submit 路由控制台时,它显示我未定义,当我尝试对 get 执行相同操作时它的工作方法*
问题暂未有回复.您可以查看右边的相关问题.
2 在 Express 中从一条路线重定向到另一条路线

我在nodejs中有以下路线 这是users.js路线 这是 dashboard.js 路线 现在,当我以用户身份登录时,当它尝试重定向我时,它会说如下。 我希望用户重定向到/dashboard/dashboard 。 如何在 Express 中将用户从一条路线重定向到另一条路线? ...

8 重用其他路线中的一条路线

我想在另一条路线内重用一条路线。 例: 这不起作用,因为我认为第一个资源routeA在routeB中被覆盖。 我的猜测正确吗? 有没有更好的方法来解决这个问题? ...

9 如何在 ReactJS 中从一条路线导航到另一条路线

我一直在尝试使用 react 和 react-router-dom 开发 Web 应用程序,用户单击我的反应路线上的按钮。 理想情况下,我希望用户在单击所述按钮后被导航到全新的页面。 作为参考,我有一个登录页面,其中我有反应路由器允许用户在登录或注册表单之间切换以显示在页面上 ^我遗漏了我的一些代 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM