Node.js'de oturum değişkenlerini yönetmenin en iyi yolu nedir? Kütüphane var mı?
Yanıtlar:
Bunu kullanarak çok kolay bir şekilde yapabilirsiniz:
Bağlan: http://senchalabs.github.com/connect/
Connects, Ruby'deki Rack gibidir. Diğerlerinin yanı sıra kimlik doğrulama, oturumlar, tanımlama bilgileri ile "oynayabileceğiniz" ekstra bir katman sağlar.
Diğer seçenek, çerçeveleri kullanmaktır:
Express.js: http://expressjs.com/
En çok kullanılan node.js çerçevesi gibi görünüyor. Ruby için Sinatra gibidir ve bağlantının üstünde çalışır.
Geddy: http://geddyjs.org/
Daha karmaşık WebApps yapmak istiyorsanız, Geddy sizin seçiminiz olacaktır. Ruby için Rails gibidir.
Sadece memcache veya başka bir önbelleğe alma mekanizmasına boşaltın. Sunucularınıza bu tür şeylerle yük olmazdım. Bir şeyleri hatırlaması gereken süper zayıf bir web sunucusunun amacı nedir?
Ayrıca sitenizi bir web sitesi değil bir uygulama olarak geliştirmeyi dener ve web sitenizi bir uygulama olarak ele alır, html5'in yerel depolama / yerel veritabanları gibi harika özelliklerini kullanır ve sunucu ile istemci makineleri arasındaki trafik miktarını azaltırdım. .
Her şey başarısız olursa (veya site küçükse), o zaman sizi durduran şey kendi oturum sınıfınızı yazın. O kadar zor değil. Özellikle de bellek tipi bir şeyse. Oturumları zaman aşımına uğratmak için biraz zamanlayıcı mantığı koyun ve işte başlayın. JavaScript gibi dinamik bir dilde lanet olsun, çocuk oyuncağı olmalı.
Yapı, anahtar oturum ve değer, son iletişim ve yeteneklerin ayrıntılarını içeren bir nesne olan bir sözlük olmalıdır (belirli özelliklere erişimi sağlamak için). Zaman aşımına uğramış eski oturumları temizlemek için bir süpürme işlevi ekleyin. ve tombala. Temel bir oturum hizmeti. "Listede oturum anahtarıdır ... evet / hayır ... ayrıntıları al" ... ve sanırım bu .... veya eksik olduğum bir özellik var mı?
Şahsen mümkün olduğu kadar uzun süre üçüncü taraf araçlardan kaçınırdım. Zamanın kumları çok hızlı değişir ve her zaman kendi geliştirdiğiniz koda güvenebilirsiniz.
nodejs, temel bir http API sağlar. http durumsuzdur ve oturum ve oturum değişkenlerine ilişkin fikirler http'nin üzerine inşa edilen çerçeve / protokollerde mevcuttur. http://en.wikipedia.org/wiki/Session_%28computer_science%29
Bir göz atın http://geddyjs.org/ veya http://expressjs.com/ oturumları sağlamak düğüm ile inşa web çerçevelerin örnekleri olarak.
Donald'ın cevabı iyidir - bağlantı ara yazılımının soğan modeline girdiğinizde, ne tür bir oturum deposu kullanacağınıza karar vermelisiniz. Ekspres içindeki varsayılan olan bir MemoryStore'dur ve üretim kullanımı için tasarlanmamıştır. İşte seçeneklerinizden bazıları:
Mongo https://github.com/mikkel/express-session-mongo - 'native_parser: false' seçeneğini kullandığınızdan emin olun
Redis https://github.com/visionmedia/connect-redis - Çok iyi, ancak zaten redis'i pub / sub veya depolama için kullanmıyorsanız ideal olmayabilir.
Dikkat edin, başka seçenekler de vardır - bu sizin projenize bağlıdır. Mevcut teknoloji yığınınızdan yararlanarak tanıtabileceğiniz bir şey arayın.
Node.js kullanarak ciddi bir web geliştirme arıyorsanız, Express çerçevesini kullanın ; oturumları destekler.
Express projesini --sessions seçenekleriyle oluşturun.
$ express --sessions
Express'i yüklemek için:
$ npm install express -g
cookie-sessionsenin için package.josnişin.