Framework Guides
Express
Build API routes with KadakORM and explicit validation.
Express
Problem: request payload bugs leak into database writes.
Solution: validate with table validators before calling insert().
import express from 'express'
import { connect, table } from '@shyk/kadak-orm'
const users = table('users', {
id: 'id',
email: 'email',
name: 'text',
})
const db = connect('postgres://postgres:postgres@localhost:5432/kadak_demo', { users })
const app = express()
app.use(express.json())
app.get('/users', async (_req, res) => {
const rows = await db.users.findMany({ $limit: 50, $order: { id: 'desc' } })
res.json(rows)
})
app.post('/users', async (req, res) => {
const parsed = users.insertValidator().safeParse(req.body)
if (!parsed.success) return res.status(400).json(parsed.error.flatten())
const row = await db.users.insert(parsed.data)
res.status(201).json(row)
})
app.listen(3000)