내가하는 프로젝트가 MySQL로 전환되었습니다. 우리가 사용하는 키는 43d597d7-2323-325a-90fc-21fa5947b9f3과 같은 UUID 문자열이지만 문자열이 아닌 데이터베이스 필드는 16 진수 - 16 바이트 부호없는 2 진수로 정의됩니다.노드에서 UUID를 바이너리로 변환
UUID는 기본적으로 16 바이트 바이너리라는 것을 알고 있지만 바이너리 숫자로 변환하는 방법을 모릅니다.
데이터베이스에 액세스하는 데 node-mysql을 사용하고 있으며 node-uuid을 사용하여 UUID를 구문 분석했지만 정수 배열을 생성했습니다. 또한 Node's Buffer을 사용해 보았지만 버퍼 객체 만 생성됩니다.
어떻게 필드에 맞게 UUID 문자열을 변환합니까? 그리고 그 필드에서 읽은 값을 UUID로 바꾸려면 어떻게해야합니까?
에서 [HEX '()'(http://dev.mysql.com/doc/refman/5.5/en /string-functions.html#function_hex) 함수를 사용하면 꽤 가깝습니다. – tadman
당신이 언급 한 정수 배열은 n .toString (16) – dandavis
@dandavis를 사용하여 문자열로 다시 변환 한 후 원하는대로 될 수 있습니다. 시도한 첫 번째 작업은 다음과 같습니다. x에서 대시를 제거합니다. 'y = parseInt (x, 16)'->는 9.2230 ... e + 31과 같이 많은 수를 출력하지만,'y.toString (16)'은 완전히 다른 수를 반환합니다. JavaScript는 16 바이트 정밀도를 제대로 처리 할 수 없으며 변환에서 유효 숫자가 손실 될 가능성이 큽니다. –