session মডিউল

web-এর জন্য session middleware। Session একটি র‍্যান্ডম UUID দিয়ে keyed, HttpOnly কুকিতে স্টোর হয়; per-session data একটি bnl map in-process। Pluggable — handler কোড না বদলে Redis/DB-backed store দিয়ে swap করতে পারেন।

import "web"     as web;
import "session" as session;

var store = session.create_store(null);
var app   = web.app();
app.before(store.before);
app.after (store.after);

app.get("/", function (req) {
    var n = req.session.visits;
    if (n == null) { n = 0; }
    req.session.visits = n + 1;
    return "visit " + str(req.session.visits);
});

app.listen({ port: 3000 });

API

ফাংশনবর্ণনা
session.create_store(opts) → storeIn-memory store। opts: {cookie_name, max_age, same_site, secure}

Store object

মেথডবর্ণনা
store.beforeApp middleware: req.session populate। app.before-এ mount।
store.afterApp middleware: req.session write back ও cookie attach। app.after-এ mount।
store.destroy(req)Session drop ও পরের response-এ কুকি delete।
store.count() → numberবর্তমান session সংখ্যা।

নোট

  • req.session একটি per-request copyreq.session.foo = ... safe।
  • ডিফল্ট: cookie name bnl_sid, max_age 86400s, same_site: "Lax", secure: false
  • Multi-process deploy-এ Redis/DB store লিখুন {before, after} ইন্টারফেসের উপর।

আরও দেখুন