Supabase è un'ottima alternativa open-source a Firebase, basata su PostgreSQL. Offre autenticazione, database in tempo reale, storage e molto altro. In questa guida vedremo come integrarlo in un'applicazione Node.js.
Installazione
Per iniziare, installa il client Supabase utilizzando npm:
npm install @supabase/supabase-js
Configurazione
Una volta installato il pacchetto, configura il client Supabase con il tuo URL e la chiave API. Puoi trovare queste informazioni nella dashboard di Supabase.
const { createClient } = require('@supabase/supabase-js');
const SUPABASE_URL = 'https://your-project-url.supabase.co';
const SUPABASE_KEY = 'your-anon-key';
const supabase = createClient(SUPABASE_URL, SUPABASE_KEY);
Operazioni di base
Inserire dati
Per inserire dati in una tabella, utilizza il metodo insert
:
async function insertData() {
const { data, error } = await supabase
.from('users')
.insert([
{ name: 'Mario Rossi', email: 'mario@example.com' }
]);
if (error) console.error(error);
else console.log(data);
}
insertData();
Recuperare dati
Per ottenere dati da una tabella, usa il metodo select
:
async function getData() {
const { data, error } = await supabase
.from('users')
.select();
if (error) console.error(error);
else console.log(data);
}
getData();
Aggiornare dati
Puoi aggiornare i dati con il metodo update
:
async function updateData() {
const { data, error } = await supabase
.from('users')
.update({ name: 'Luigi Bianchi' })
.eq('email', 'mario@example.com');
if (error) console.error(error);
else console.log(data);
}
updateData();
Eliminare dati
Per eliminare un record, usa il metodo delete
:
async function deleteData() {
const { data, error } = await supabase
.from('users')
.delete()
.eq('email', 'mario@example.com');
if (error) console.error(error);
else console.log(data);
}
deleteData();
Autenticazione
Supabase offre anche autenticazione con email e password. Ecco come registrare un utente:
async function signUp() {
const { user, error } = await supabase.auth.signUp({
email: 'test@example.com',
password: 'password123'
});
if (error) console.error(error);
else console.log(user);
}
signUp();
E per effettuare il login:
async function signIn() {
const { user, error } = await supabase.auth.signInWithPassword({
email: 'test@example.com',
password: 'password123'
});
if (error) console.error(error);
else console.log(user);
}
signIn();
Conclusione
Supabase semplifica notevolmente la gestione del database e dell'autenticazione in un'applicazione Node.js. Grazie alla sua API intuitiva, puoi integrare facilmente funzionalità avanzate senza dover gestire server complessi.