Quick Start
Get up and running with Kito in minutes
This guide will help you create your first Kito application in just a few minutes.
Create Your First Server
-
Install Kito
-
Create a server file
Create a new file
server.ts:import { server } from "kitojs"; const app = server(); app.get("/", ({ res }) => { res.send("Hello, Kito!"); }); app.listen(3000, () => { console.log("Server running on http://localhost:3000"); }); -
Run your server
-
Test your server
Open your browser and visit
http://localhost:3000or use curl:curl http://localhost:3000 # Output: Hello, Kito!
Add More Routes
Kito makes it easy to add multiple routes with different HTTP methods:
import { server } from "kitojs";
const app = server();
// GET route
app.get("/", ({ res }) => {
res.send("Home page");
});
// POST route
app.post("/users", ({ res }) => {
res.json({ message: "User created" });
});
// Route with parameters
app.get("/users/:id", ({ req, res }) => {
const { id } = req.params;
res.json({ userId: id });
});
app.listen(3000);Handle Request Data
Access request data easily through the context object:
app.get("/search", ({ req, res }) => {
// Query parameters: /search?q=kito
const query = req.query.q;
res.json({ searchTerm: query });
});
app.post("/data", ({ req, res }) => {
// Request body
const body = req.json();
res.json({ received: body });
});
app.get("/info", ({ req, res }) => {
// Request headers
const userAgent = req.header("user-agent");
res.send(`Your user agent: ${userAgent}`);
});Add Validation
Kito includes built-in validation powered by Rust for maximum performance:
import { server, schema, t } from "kitojs";
const app = server();
const userSchema = schema({
body: t.object({
name: t.str().min(1).max(50),
email: t.str().email(),
age: t.num().min(0).max(120).optional(),
}),
});
app.post("/users", ({ req, res }) => {
// Body is now validated
const { name, email, age } = req.body;
res.json({ name, email, age });
}, userSchema);
app.listen(3000);Use Middleware
Add middleware to handle cross-cutting concerns:
import { server, middleware } from "kitojs";
const app = server();
// Logger middleware
const logger = middleware((ctx, next) => {
const { method, url } = ctx.req;
console.log(`${method} ${url}`);
next();
});
// Use globally
app.use(logger);
// Or per-route
app.get("/protected", [logger], ({ res }) => {
res.send("Protected route");
});
app.listen(3000);Next Steps
Now that you have a basic server running, explore more advanced features:
- Routing - Learn about dynamic routes and route patterns
- Validation - Deep dive into schema validation
- Middleware - Build reusable middleware functions
- Context Extensions - Extend the request context