2012-03-29 21 views
8

में कुकी सत्र का उपयोग कैसे करें मैं cookieSession कनेक्ट की ऑब्जेक्ट का उपयोग करने का प्रयास कर रहा हूं, लेकिन मैं इसे एक्सप्रेस के साथ ठीक से काम नहीं कर सकता।एक्सप्रेस

var express = require('express'); 
var connect = require('connect'); 

var app = express.createServer(); 

app.configure(function() { 
    app.use(express.logger()); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(express.cookieParser('whatever')); 
    app.use(connect.cookieSession({ cookie: { maxAge: 60 * 60 * 1000 }})); 
}); 

app.get('/', function(req, res) { 
    res.render('root'); 
}); 

app.listen(3000); 

मैं इस त्रुटि हो रही है::

TypeError: Cannot read property 'connect.sess' of undefined 
    at Object.cookieSession [as handle] 

कोई भी विचार

मैं इस ऐप्स है?

धन्यवाद

+0

कोई विशेष कारण है कि आप express.cookieSession के बजाय connect.cookieSession उपयोग कर रहे हैं? –

+1

@AndersBornholm सवाल बहुत पुराना है, शायद यह उस बिंदु पर उपलब्ध नहीं था – mihai

उत्तर

1

अपने connect मॉड्यूल के संस्करण क्या है? cookieSession मिडलवेयर पहले संस्करण 2.0.0 में जोड़ा गया था। यह सुनिश्चित करने के लिए कि connect संस्करण कम से कम 2.0.0 या उच्चतर है, npm list|grep connect चलाएं।

+0

एक्सप्रेस कनेक्ट 1.8.6 के साथ आता है, इसलिए हाँ, शायद यही कारण है कि यह काम नहीं कर रहा है। धन्यवाद – mihai

+2

एक्सप्रेस 3 कनेक्ट 2.7 के साथ आता है। – UpTheCreek

1

मुझे यह समस्या भी थी। यह पता चला कि एनएएमएम एनएएमएम को हटाए जाने वाले सभी मुद्दों को हटाए गए सभी मुद्दों को हटाकर 1.7.5 से कनेक्ट मॉड्यूल के बीच था।

app.use(express.cookieParser()); 
app.use(express.cookieSession()); 
app.use(app.router); 

उसके बाद एक आकर्षण की तरह कार्य करना:

12

सत्र जब तक आप इस क्रम में इन 3 है काम नहीं करेगा।

देखें: https://stackoverflow.com/a/10239147/2454820

+0

मुझे त्रुटि मिल रही है: कुकी सत्र – Maslow

+0

के लिए 'गुप्त' विकल्प आवश्यक है बस एक रहस्य जोड़ें: app.use (express.cookieSession ({secret: 'mysecret'}); –

+0

'app.use (app.router) 'हटाएं और यह मेरे लिए काम करता है। (गुप्त भी जोड़ना पड़ा) –