Документація / Контекст запиту
Контекст запиту
Об'єкт ctx: params, query, headers, body, клієнт БД, логер.
Кожен хендлер отримує об’єкт ctx, який містить поверхню запиту, логер і клієнт бази даних. Його значення, що повертається, серіалізується у відповідь.
Об’єкт ctx
Кожен хендлер отримує ctx:
defineRoute({
handler: async (ctx) => {
ctx.method; // 'GET' | 'POST' | ...
ctx.path; // '/posts/123'
ctx.url; // URL object
ctx.params; // { id: '123' }
ctx.query; // URLSearchParams
ctx.headers; // Request headers
ctx.ip; // string | undefined
ctx.startedAt; // number — request start (Date.now()), used for duration
ctx.requestId; // string | undefined — set if requestId() middleware ran
const body = await ctx.body(); // parsed JSON
const raw = await ctx.text(); // raw body
ctx.setStatus(201);
ctx.setHeader('X-Custom', 'value');
ctx.log.info('handler running', { id: ctx.params.id });
const post = await ctx.db?.model('post').findOne(Number(ctx.params.id));
return { ok: true }; // any value → JSON response
},
});
Серіалізація значень, що повертаються
Значення, що повертаються, серіалізуються так:
- екземпляр
Response→ повертається як є string→text/plainUint8Array/ArrayBuffer→ бінарнеnull/undefined→ порожнє тіло- усе інше →
JSON.stringify