Câu trả lời:
Bạn có thể làm điều đó rất dễ dàng bằng cách sử dụng:
Kết nối: http://senchalabs.github.com/connect/
Kết nối giống như Rack trong Ruby. Nó cung cấp cho bạn một lớp bổ sung, nơi bạn có thể "chơi" với xác thực, phiên, cookie, trong số những thứ khác.
Tùy chọn khác là sử dụng các khuôn khổ:
Express.js: http://expressjs.com/
Nó dường như là framework node.js được sử dụng nhiều nhất. Giống như Sinatra cho Ruby và chạy trên đầu kết nối.
Geddy: http://geddyjs.org/
Nếu bạn muốn thực hiện các WebApp phức tạp hơn, Geddy là người bạn chọn. Giống như Rails cho Ruby.
nodejs cung cấp một API http cơ bản. http là không trạng thái và các ý tưởng về phiên và biến phiên tồn tại trong khuôn khổ / giao thức được xây dựng trên http. http://en.wikipedia.org/wiki/Session_%28computer_science%29
Hãy xem http://geddyjs.org/ hoặc http://expressjs.com/ để làm ví dụ về các khuôn khổ web được xây dựng bằng nút cung cấp các phiên.
Chỉ cần tải nó xuống memcache hoặc một số cơ chế bộ nhớ đệm khác. Tôi sẽ không tạo gánh nặng cho máy chủ của bạn với những thứ như thế này. Điểm của một máy chủ web siêu tinh gọn là gì phải nhớ những thứ.
Tôi cũng sẽ thử và phát triển trang web của bạn dưới dạng ứng dụng chứ không phải trang web hoặc coi trang web của bạn như một ứng dụng, sử dụng các tính năng tuyệt vời của html5 như lưu trữ cục bộ / cơ sở dữ liệu cục bộ và cắt giảm lưu lượng truy cập giữa máy chủ và máy khách .
Nếu vẫn thất bại (hoặc trang web nhỏ) thì điều gì đang ngăn bạn viết lớp phiên của riêng mình. Không khó đâu. Đặc biệt nếu nó là một thứ trong bộ nhớ. Đặt một số logic hẹn giờ để hết thời gian các phiên và bạn sẽ làm được. Chết tiệt trong một ngôn ngữ động chẳng hạn như JavaScript, hẳn là một điều khó hiểu.
Cấu trúc phải là một từ điển với khóa là phiên và giá trị là một đối tượng chứa thông tin chi tiết về giao tiếp và khả năng cuối cùng (để cho phép truy cập vào các tính năng nhất định). Thêm chức năng quét để xóa các phiên cũ đã hết thời gian. và chơi lô tô. Một dịch vụ phiên cơ bản. kiểm tra cơ bản về "có phải là khóa phiên trong danh sách ... có / không ... nhận thông tin chi tiết" ... và tôi nghĩ đó là nó .... hoặc có một số tính năng mà tôi đang thiếu.
Cá nhân tôi sẽ tránh mọi công cụ của bên thứ ba càng lâu càng tốt. Cát thời gian thay đổi rất nhanh và bạn luôn có thể phụ thuộc vào mã do chính mình phát triển.
Câu trả lời của Donald rất hay - một khi bạn đã tham gia vào mô hình hành động của phần mềm trung gian kết nối, bạn phải đưa ra quyết định về loại cửa hàng phiên sẽ sử dụng. Cái mặc định nói chung là MemoryStore, và không dùng cho mục đích sản xuất. Dưới đây là một số lựa chọn của bạn:
Mongo https://github.com/mikkel/express-session-mongo - Hãy đảm bảo sử dụng tùy chọn 'native_parser: false'
Redis https://github.com/visionmedia/connect-redis - Rất tốt, nhưng nếu bạn chưa sử dụng redis cho pub / sub hoặc bộ nhớ thì nó có thể không lý tưởng.
Lưu ý, có những sự lựa chọn khác - nó phụ thuộc vào dự án của bạn. Tìm kiếm thứ gì đó bạn có thể giới thiệu để tận dụng nền tảng công nghệ hiện có của bạn.
Nếu bạn đang tìm kiếm sự phát triển web nghiêm túc bằng Node.js, hãy sử dụng Express framework ; nó hỗ trợ các phiên.
Tạo dự án Express với các tùy chọn --sessions.
$ express --sessions
Để cài đặt Express:
$ npm install express -g
cookie-sessionvào của bạn package.josnđể làm việc.