Ошибки графика могут быть вызваны многими различными факторами. Возможно, это серверная ошибка, вызванная нижним API или сбоем базы данных, или какой-либо другой программной ошибкой. Или это может быть ошибка запроса.
Ошибки запроса вызваны клиентом. Возможно, это плохой запрос, ошибка разрешения или несоответствие типа поля. Но иногда причина проще и парадоксально сложнее исправить.
В последнее время я столкнулся с аналогичной проблемой. Любой, кто пытался отправить струнные jsons или массивы в текстовые поля с намерением анализа их позже, может подтвердить, что, хотя эта идея кажется четким решением, все часто не так просто.
Основная проблема возникает в форме эффективного избегания персонажей в струнах. Простой объект может отлично работать с базовым заменить Или сбежать, но по мере того, как ваш объект становится больше и сложнее, проблемы ранее невидимы.
После большого количества проб, ошибок и исследований я нашел этот кусок кода, который решил все мои проблемы.
String.prototype.escapeSpecialChars = function () {
return this.replace(/\\/g, "\\\\")
.replace(/\n/g, "\\n")
.replace(/\r/g, "\\r")
.replace(/\t/g, "\\t")
.replace(/\f/g, "\\f")
.replace(/"/g, '\\"');
};
Просто используйте его на струнном объекте.
stringObj = JSON.stringify(obj) let escapedStringObj = stringObj.escapeSpecialChars();
В то время как метод строительства и более позднего анализа не является идеальным, и далеко от моей рекомендации, иногда это действительно может быть самым простым способом. Если вы когда -нибудь чувствуете необходимость приступить к таким усилиям, не забудьте убежать ответственно! Я надеюсь, что этот код поможет вам так же сильно, как и для меня.:)
Оригинал: “https://dev.to/paruladitya/graphql-and-parse-errors-2bad”