cuốn sách gpt4 ai đã làm

phiên - Nút, lưu trữ phiên xóa phiên hết hạn

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 22:19:11 30 4
mua khóa gpt4 Nike

Tôi đang cố gắng triển khai lưu trữ phiên cho ứng dụng Nút express.js. Câu hỏi của tôi là:

  1. Cách xóa cookie theo vòng đời phiên trình duyệt (được đánh dấu hết hạn = false theo tài liệu kết nối)
  2. Tôi nên lưu trữ dữ liệu phiên dưới dạng chuỗi json hay trực tiếp dưới dạng đối tượng?

Đây là những gì tôi đã nghĩ ra cho đến nay với CoffeeScript, sử dụng Mongoose vì đó là orm tôi đã chọn cho ứng dụng

    thể hiện = yêu cầu 'thể hiện'
cầy mangut = yêu cầu "cầy mangut"
util = yêu cầu "util"

# xác định lược đồ phiên
SessionSchema = mongoose mới.Schema
sid : { loại: Chuỗi, bắt buộc: đúng, duy nhất: đúng }
dữ liệu: { loại: Chuỗi, mặc định: '{}' }
hết hạn: { type: Ngày, chỉ mục: true }

module.exports =
lớp SessionStore mở rộng express.session.Store
hàm tạo: (tùy chọn) ->

console.log "tạo cửa hàng phiên mới"

tùy chọn ?= {}

# khoảng thời gian làm mới
tùy chọn.interval ?= 60000

options.url ?= "mongodb://localhost/session"

# tạo kết nối phiên chuyên dụng
kết nối = mongoose.createConnection options.url

# tạo mô hình phiên
@Session = Connection.model 'Phiên', SessionSchema

# xóa phiên hết hạn sau mỗi chu kỳ
RemoveExpires = => @Session.remove hết hạn: { '$lte': new Date() }

setInterval loại bỏHết hạn, tùy chọn.interval

nhận được: (sid, fn) ->
@Session.findOne sid: sid, (err, session) ->
nếu phiên?
thử
fn null, JSON.parse session.data
bắt lỗi
lỗi lầm
khác
fn err, phiên

đặt: (sid, dữ liệu, fn) ->

bác sĩ =
sid: sid
dữ liệu: dữ liệu JSON.stringify
hết hạn: data.cookie.expires
thử
@Session.update sid: sid, doc, upsert: true, fn
bắt lỗi
lỗi lầm

hủy: (sid, fn) ->
@Session.remove { sid: sid }, fn

tất cả: (fn) ->
@Session.find { hết hạn: { '$gte': new Date() } }, [ 'sid' ], (err, phiên) ->
nếu phiên?
fn null, (session.sid cho phiên trong phiên)
khác
lỗi lầm

rõ ràng: (fn) -> @Session.drop fn

độ dài: (fn) -> @Session.count {}, fn

câu trả lời hay nhất

Tôi khá mới với Node, vì vậy hãy cân nhắc điều này.

Mặc dù nó không được định hướng trực tiếp đến phiên Hướng dẫn nhớ tôi trên dailyjsTôi nghĩ nó sẽ giúp ích một chút. Đặc biệt là đoạn mã cuối cùng nơi anh ấy xác minh mã thông báo đăng nhập.

Ngoài ra, tôi nghĩ sẽ tốt hơn nếu phân tích cú pháp JSON và lưu trữ nó dưới dạng đối tượng. Việc truy cập các bit cookie khác nhau theo cách này sẽ dễ dàng hơn nếu bạn thực hiện phân tích cú pháp trước.

Về việc xóa phiên-Nút và lưu trữ phiên của các phiên đã hết hạn, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/7514798/

30 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress