Quando si creano i dati di un utente o in generale, il percorso migliore è quello di segnalare al database di creare automaticamente un id univoco. Quando non è possibile perché non abbiamo subito il database a disposizione, è possibile creare dei dati fasulli anche creando degli id dall’applicazione
Fake con la data di inserimento
Non sempre quando si crea il front c’è già a disposizione l’API per la chiamata al database e potrebbe essere necessario per test da backend o frontend di creare fake id (perché solitamente il database li crea già in automatico univoci). Questa è un’idea per creare degli id univoci, perché legati al
id: new Date(Date.now()).getTime().toString()
Con modulo UUID
L’alternativa è utilizzare un ID tramite il modulo uuid.
import { v4 as uuidv4 } from "uuid";
let users = []; // Sarà un array di oggetti
router.post("/", (req, res) => {
const newUser = req.body;
const id = uuidv4();
newUser.id = id;
users.push(newUser);
res.status(201).send(newUser);
});
La risposta della chiamata sarà:
[
{
"name": "Giuliano Nerini",
"email": "giuliano.nerini@example.com",
"id": "6e047414-710d-491d-ac67-d4fc9bbfab51"
},
{
"name": "Marina Bianchi",
"email": "marina.bianchi@example.com",
"id": "787eea83-90dc-49b2-a229-7c4a519c797e"
}
]
Nota per React
Se si lavora con Node + React potrebbe essere utile in caso di creazione di id fake l’hook useId() che crea degli id già tramite frontend
const id = useId();
return (
<>
<label htmlFor={id}>Email:</label>
<input id={id} type="email" />
</>
);