Skip to content

Ejemplos con JavaScript

Configuración

No se necesita SDK. Usá la API nativa fetch o cualquier cliente HTTP.

js
const CELDRAX_TOKEN = process.env.CELDRAX_TOKEN // cxk_...
const DB = 'midb'

async function query(tabla, body) {
  const res = await fetch(`https://celdrax.com/api/${DB}/${tabla}`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${CELDRAX_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(body),
  })

  if (!res.ok) {
    const err = await res.json()
    throw new Error(err.error)
  }

  return res.json()
}

SELECT

js
// Obtener todos los usuarios activos
const { data } = await query('usuarios', {
  verb: 'select',
  filters: { active: true },
  orderBy: 'created_at DESC',
  limit: 50,
})

console.log(data.rows)    // array de filas
console.log(data.count)   // cantidad de filas retornadas
js
// Obtener columnas específicas
const { data } = await query('productos', {
  verb: 'select',
  columns: ['id', 'nombre', 'precio'],
  filters: { categoria: 'electronica' },
  limit: 20,
})

INSERT

js
const { data } = await query('usuarios', {
  verb: 'insert',
  data: {
    email: 'alice@example.com',
    nombre: 'Alice',
    active: true,
  },
})

console.log(data.id)  // id auto-increment de la nueva fila

UPDATE

js
const { data } = await query('usuarios', {
  verb: 'update',
  data:    { active: false, updated_at: new Date().toISOString() },
  filters: { id: 42 },
})

console.log(data.updated)  // cantidad de filas afectadas

DELETE

js
const { data } = await query('sesiones', {
  verb: 'delete',
  filters: { user_id: 42 },
})

console.log(data.deleted)  // cantidad de filas eliminadas

Manejo de errores

js
try {
  const result = await query('usuarios', { verb: 'select' })
} catch (err) {
  if (err.message.includes('REQUESTS_EXCEEDED')) {
    console.error('Límite mensual alcanzado — actualizá tu plan')
  } else {
    console.error('Consulta fallida:', err.message)
  }
}

Con axios

js
import axios from 'axios'

const celdrax = axios.create({
  baseURL: 'https://celdrax.com',
  headers: { Authorization: `Bearer ${process.env.CELDRAX_TOKEN}` },
})

const { data } = await celdrax.post('/api/midb/usuarios', {
  verb: 'select',
  limit: 10,
})

console.log(data.data.rows)