2012-12-25 157 views
1

我正在設置一個cookie並訪問它。 當我做console.log它不顯示任何東西。但是當我在瀏覽器上看到cookie時,我可以看到它的價值。 我想檢查cookie是否爲1.如果它是一個繼續放下它。但我有問題訪問此值。在會話中設置Cookie

2)看起來我直接設置值,而不是如何: app.use(express.cookieParser('keyboard cat')); 這裏很有用。問題是如果我沒有這個app.use,它將無法找到祕密。

如果你能讓我知道我在特快網址上丟失cookies上的任何指針,它將會很好。

app.post('/login', function(req, res){ 

console.log(req.cookies.rememberme); 
console.log(req.session.user); 
if (req.session.user) { 
    req.session.user=req.body.username; 
    ss=req.session.user; 
    res.cookie('rememberme', '1', { maxAge: 2000, httpOnly: true }); 
    } else { 
    req.session.user="test"; 
    ss=req.session.user; 
    } 
res.send('viewed times\n'+ss); 
}); 

我所看到的是,如果用戶提供了正確的用戶名和密碼,那麼我將爲他分配一個cookie。如果這樣做,並在隨後的請求用戶將使用相同的cookie。 我也在看我如何可以將這個cookie存儲在本地內存和..

回答

0

這段代碼展示了我們如何使用基於cookie的會話!

var express = require('express') 
    , app = module.exports = express() 
    , utils = require("util"); 

app.use(express.cookieParser('hello !!')); 
app.use(express.cookieSession({key:"remember", secret: 'testing', cookie: { maxAge: 5000}})); 
app.use(express.bodyParser()); 

app.get('/', function(req, res, next){ 

    if(req.session.user) { 
    res.send('welcome ' + req.session.user + ' Click to <a href="/forget">forget</a>!.'); 
    } else { 
     res.send('<form method="post">' 
     + '<p>Username : <label><input type="texst" name="user"/></label>' 
     + '<p><label><input type="checkbox" name="remember"/> remember me</label></p> ' 
     + '<p><input type="submit" value="Submit"/>.</p></form>'); 
    } 

}); 

app.get('/forget', function(req, res){ 
    res.clearCookie("remember"); 
    res.redirect('back'); 
}); 

app.post('/', function(req, res){ 

    if (req.body.remember) { 
    req.session.user = req.body.user; 
    console.log ("set-cookie :" , res.get("Set-Cookie"));  
    }  
    res.redirect('back'); 
}); 

if (!module.parent){ 
    app.listen(3000); 
    console.log('Express started on port 3000'); 
}