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) → store | In-memory store। opts: {cookie_name, max_age, same_site, secure}। |
Store object
| মেথড | বর্ণনা |
|---|---|
store.before | App middleware: req.session populate। app.before-এ mount। |
store.after | App 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 copy —req.session.foo = ...safe।- ডিফল্ট: cookie name
bnl_sid,max_age86400s,same_site: "Lax",secure: false। - Multi-process deploy-এ Redis/DB store লিখুন
{before, after}ইন্টারফেসের উপর।