2017-07-25 58 views
0

這裏是JS我用我的OTP的值存儲會話內:如何獲取存儲在js函數內的會話中的值?

app.use(session({ 
    secret:'mysecret' 
}); 


app.post('/',(req,res)=>{ 
    var ss = req.session; 
    ss.otp = req.body.otp; 
}); 

現在,我想我的js函數內部此值。

我該怎麼做? 謝謝。

+0

哪個js函數是你的意思,你已經準備好在你的post中間件中訪問它了?您使用哪個模塊創建會話? –

+0

請指定你想在哪個函數中獲得哪個值以及你在這裏使用哪些模塊(什麼是'app'?什麼是'session'?顯示你定義它們的代碼)。我對你的第一篇文章做了小的改進,但是它缺少一些主要部分。 – YakovL

回答

0

也許我不明白這個問題,但這是你在找什麼?

app.post('/',(req,res)=>{ 
    var ss = req.session; 
    ss.otp = req.body.otp; 
    myFunction(ss.opt) 
}); 


function myFunction(opt){ 
    console.log('inside function with opt: ' + opt); 
} 

或者你是否試圖將它保存到會話以供將來使用?在這種情況下做到這一點:

app.post('/',(req,res)=>{ 
    req.session.opt = req.body.otp; 
}); 

//From a post 
app.post('/newpost', (req,res)=>{ 
    if(req.session.opt){ 
     someFunction(req.session.opt); 
    } 
} 

// From a get 
app.get('/newroute', (req,res)=>{ 
    if(req.session.opt == 'somevalue'){ 
     console.log('opt exists') 
    }else{ 
     //do something else 
     res.redirect('/someredirect') 
    } 
} 
+0

是的,我正在存儲我的會話以供將來使用。我想要做的是首先將我的會話中的數據保存在我的服務器中。然後我想把這些數據放到我的html文件中,我的功能是點擊一個按鈕。 – Nikhil

+0

好的,第二個例子展示瞭如何在稍後訪問會話中的值。 – Woodsy

+0

不,我知道這一點,但我不想在同一個服務器頁面上獲得會話的價值,我希望在不同的HTML頁面上使用此值。我有一個函數,並從那裏我想檢查我是否有一些數據存儲在我的會話中 – Nikhil

0

從您的意見,我得到的是你要訪問的會話數據客戶端,你不能,根據文檔(假設你使用快遞會話):

https://github.com/expressjs/session#sessionoptions

注意會話數據不保存在cookie本身,只是會話ID。會話數據存儲在服務器端。

所以我最好的猜測是剛剛添加路由

GET /me 

,你返回你所需要的用戶信息。

+0

是的,你讓我對,這正是我想要做的。所以根據你的第一,我必須將我的會話ID存儲在一個cookie中,然後我可以使用Cookie中的相同會話ID在客戶端獲得我的會話值。 – Nikhil

相關問題