Inherited from v1.0.0

web মডিউল

Bnlang-এর HTTP সার্ভার ফ্রেমওয়ার্ক। Declarative routing, before/after middleware, automatic response coercion, streaming, file serving, templating, এবং WebSocket upgrade।

import "web" as web;

var app = web.app();
app.get("/",            function (req) { return "Hello!"; });
app.get("/users/:id",   function (req) { return { id: req.params.id }; });
app.post("/upload",     function (req) { return web.json({ ok: true }); });
app.listen({ port: 3000 });

App builder

মেথডবর্ণনা
web.app() → appনতুন app।
app.get(path, handler)GET রুট। path-এ :param segments।
app.post(path, handler), .put, .patch, .delete, .headঅন্যান্য method।
app.before(fn)fn(req) প্রতিটি handler-এর আগে। Non-null ফেরত = short-circuit।
app.after(fn)fn(resp, req) প্রতিটি handler-এর পরে।
app.not_found(fn)কাস্টম 404।
app.on_error(fn)Handler exception ধরা।
app.static(prefix, dir)dir থেকে prefix/...-এ ফাইল serve।
app.listen(opts) → serveropts: {port, host?, tls?, max_body_size?, idle_timeout?}{port, close()} ফেরত।

Response builder

হ্যান্ডলার থেকে এদের যেকোনো ফেরত দিন — অথবা plain string/map/list দিন এবং web coerce করবে।

Builderবর্ণনা
web.text(s)text/plain
web.html(s)text/html
web.json(value)application/json
web.redirect(url)302 redirect।
web.error(status, msg)Status-coded error।
web.file(path)ফাইল stream।
web.view(path, ctx)template দিয়ে রেন্ডার।

Request object

  • req.method, req.path, req.url, req.headers
  • req.params — রুট pattern থেকে
  • req.query — parsed ?a=b&c=d
  • req.body — raw body
  • req.cookies — parsed cookies map

হেল্পার: web.parse_form(req), web.parse_json(req)

Streaming + WebSocket

ফাংশনবর্ণনা
web.serve_stream(opts, handler)Streaming server mode। বড় body buffer ছাড়াই।
web.upgrade(req) → connHTTP রিকোয়েস্ট raw connection-এ upgrade।
web.set_views(dir)web.view-এর ডিফল্ট ডিরেক্টরি।

আরও দেখুন