Skip to content

Server Routes

server.get('users', UserArraySchema, async () => db.users.findAll())
server.get('users/:id', UserSchema, async (req) => db.users.find(req.params.id))
server.post('users', UserSchema, async (req) => db.users.create(req.body))
server.put('users/:id', UserSchema, async (req) => db.users.replace(req.params.id, req.body))
server.patch('users/:id', UserSchema, async (req) => db.users.update(req.params.id, req.body))
server.delete('users/:id', z.null(), async (req) => { await db.users.delete(req.params.id); return null })
interface WeldRequest<TBody> {
body: TBody
params: Record<string, string> // URL params (:id)
query: Record<string, string> // ?key=value
headers: Record<string, string>
url: string
method: HttpMethod
}
server.get('users', UserArraySchema, async (req, res) => {
if (!req.headers['authorization']) {
res.error('Unauthorized', 401)
return
}
return db.users.findAll()
})

CORS is enabled by default (*). Restrict origins:

const server = new WeldServer({
cors: { origins: ['https://myapp.com'] }
})