У меня возник вопрос, я не смог найти ответа на мои исследования в Интернете. Я работаю над веб-приложением в Node.js и Cassandra. В настоящее время я работаю над системой уведомлений, и мне нужно сравнить два uuids, чтобы я не отправлял уведомление тем людям, которые делают оригинальное действие (что вызывает уведомление).Сравнение двух uuids в Node.js
Проблема в том, что, когда я сравниваю два uuids, которые должны быть равны, я всегда получаю ложное значение.
Вот пример кода, который я сейчас работаю над:
console.log('user_id :', user_id.user_id);
console.log("user id of the current user :", this.user_id);
console.log(user_id.user_id == this.user_id);
console.log(user_id.user_id === this.user_id);
А вот отображение результата:
user_id : Uuid: 29f1227d-58dd-4ddb-b0fa-19b7fc02fbe8
user id of the current user : Uuid: 29f1227d-58dd-4ddb-b0fa-19b7fc02fbe8
false
false
user_id : Uuid: c8f9c196-2d63-4cf0-b388-f11bfb1a476b
user id of the current user : Uuid: 29f1227d-58dd-4ddb-b0fa-19b7fc02fbe8
false
false
Как вы можете видеть, первые UUID, как предполагается быть одинаковым. Они генерируются с помощью библиотеки uuid внутри драйвера nodejs cassandra. Я не понимаю, почему я не могу сравнивать их, когда я могу выполнить любой запрос в моей базе данных Cassandra с указанным uuid.
Если кто-то может мне помочь, это будет большим удовольствием!
Что такое 'typeof user_id.user_id' и' typeof this.user_id'? Я уверен, что они (разные) объекты, а не строки. Причиной является то, что идентификаторы имеют префикс 'Uuid:' в выводе, который может исходить из реализации 'toString()' объекта. – mscdex
Действительно, user_id и this.user_id - оба разных объекта, поэтому простой === недостаточно для их сравнения. – Orodan