Il progetto su cui lavoro è passato a MySQL. Le chiavi che usiamo sono stringhe UUID (come 43d597d7-2323-325a-90fc-21fa5947b9f3), ma il campo del database, piuttosto che una stringa, è definito come binario (16) - binario senza segno a 16 byte.Converti UUID in/da binario nel nodo
Capisco che un UUID è fondamentalmente un binario a 16 byte, ma non ho idea di come convertire da/a un numero binario.
Sto utilizzando node-mysql per accedere al database e ho provato a utilizzare node-uuid per analizzare l'UUID, ma questo produce un array di numeri interi. Ho anche provato a usare Node's Buffer, ma questo produce solo un oggetto buffer.
Come si converte una stringa UUID per adattarla a tale campo? E come posso convertire un valore che ho letto da quel campo in un UUID?
La [ 'HEX()'] (http://dev.mysql.com/doc/refman/5.5/en /string-functions.html#function_hex) dovrebbe funzionare molto vicino. – tadman
la matrice di interi che hai menzionato potrebbe essere quello che vuoi, dopo averli convertiti in una stringa usando n .toString (16) – dandavis
@dandavis la prima cosa che ho provato è stata: rimuovere i trattini da x, 'y = parseInt (x, 16) '-> produce un grande numero (come 9.2230 ... e + 31), ma poi' y.toString (16) 'restituisce un numero completamente diverso. JavaScript non può gestire un pozzo di precisione a 16 byte e probabilmente sta perdendo cifre significative nella conversione. –