2014-07-24 35 views
3

我試圖建立一個nodejs應用程序,我必須定義cookie。這是一些代碼:Nodejs高速緩存不添加

var app = express(); 

app.set('port', process.env.PORT || 3000); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'ejs'); 
app.use(express.favicon()); 
app.use(express.cookieParser()); 
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 
... 
app.get('/', routes.indexGET); 
app.post('/login', routes.loginPOST); 
app.post('/number', routes.numberPOST); 
... 
res.cookie('number', req.body.number, {secure: true, httpOnly: true, maxAge: 1209600000}); 
console.log(req.cookies); //Returns {} 

爲什麼不添加cookie?我知道這個問題已經在這裏問過,但我沒有罰款任何罰款答案。即使「正確的」答案(將cookieParser放在路由器之前)也沒有幫助。有什麼建議麼?謝謝。

回答

3

不知道爲什麼,但它並不適合我,如果在res.cookie('number', req.body.number, {secure: true, httpOnly: true, maxAge: 1209600000})

使用secure: true選項,不要使用它,它去上班......我想用它需要建立一個TLS連接工作了。 ...

+0

非常感謝,它的作品:) – danchohen

+0

我面臨同樣的問題。我加了安全錯誤,但仍然無效。你能舉一個簡單路由的例子嗎?完整的配置發送一個cookie? – user3631341

+0

這取決於很多因素。你使用什麼版本的expressjs?對於版本4.x +,在使用它之後,您必須使用[cookie解析器中間件](https://www.npmjs.com/package/cookie-parser),並且可以使用字段'req.cookies.name'和方法'res.cookie(name,value)'。同樣,在4.11.0+版本中,您可以使用'res.append('Set-Cookie','foo = bar; Path = /; HttpOnly')'設置多個cookie字段。查看api參考http://expressjs.com/ –