import { server } from 'kitojs';const app = server();app.get('/', ctx => { ctx.res.send('Hello World!');});app.listen(3000); Copy
import { server } from 'kitojs';const app = server();app.get('/', ctx => { ctx.res.send('Hello World!');});app.listen(3000);
import { server, schema, t } from 'kitojs';const userSchema = schema({ params: t.object({ id: t.str().uuid() }), body: t.object({ name: t.str().min(1), email: t.str().email() })});app.post('/users/:id', [userSchema], ctx => { ctx.res.json({ id: ctx.req.params.id, ...ctx.req.body });}); Copy
import { server, schema, t } from 'kitojs';const userSchema = schema({ params: t.object({ id: t.str().uuid() }), body: t.object({ name: t.str().min(1), email: t.str().email() })});app.post('/users/:id', [userSchema], ctx => { ctx.res.json({ id: ctx.req.params.id, ...ctx.req.body });});
import { server, middleware } from 'kitojs';const logger = middleware((ctx, next) => { console.log(`${ctx.req.method} ${ctx.req.url}`); next();});app.use(logger); Copy
import { server, middleware } from 'kitojs';const logger = middleware((ctx, next) => { console.log(`${ctx.req.method} ${ctx.req.url}`); next();});app.use(logger);
const app = server().extend<{ db: Database }>(ctx => { ctx.db = createDatabase();});app.get('/users', async ctx => { const users = await ctx.db.query('SELECT * FROM users'); ctx.res.json(users);}); Copy
const app = server().extend<{ db: Database }>(ctx => { ctx.db = createDatabase();});app.get('/users', async ctx => { const users = await ctx.db.query('SELECT * FROM users'); ctx.res.json(users);});
import { server, router } from 'kitojs';const apiRouter = router();apiRouter.get('/users', ({ res }) => res.json({ users: [] }));const app = server();app.mount('/api', apiRouter);app.listen(3000); Copy
import { server, router } from 'kitojs';const apiRouter = router();apiRouter.get('/users', ({ res }) => res.json({ users: [] }));const app = server();app.mount('/api', apiRouter);app.listen(3000);
Example: Basic usage
Example: With schema validation
Example: With middleware
Example: With context extensions
Example: With routers