Size: a a a

JavaScript.Ninja

2021 February 24

A

Alexander in JavaScript.Ninja
const Requests = {
   post: (url, body) => {
       return fetch(`${API_ROOT}${url}`, {
           method: 'POST',
           headers: (generalStore.token !== null ? {Authorization: `Bearer ${generalStore.token}`} : {}),
           body: body
       }).then(response => response.json())
       .then(handleErrors)
   },
   get: (url) => {
       return fetch(`${API_ROOT}${url}`, {
           method: 'GET',
           headers: (generalStore.token !== null ? {Authorization: `Bearer ${generalStore.token}`} : {})
       }).then(response => response.json())
       .then(handleErrors)
   }
}

сейчас смотрю что вроде через response.url.indexOf() можно перехватить url и от него плясать
источник

VK

Vladimir Kopynets in JavaScript.Ninja
Кто-то сталкивался с внедрением защиты от скрапинга? Можете что посоветовать ?
источник

AP

Anatoliy Poloz in JavaScript.Ninja
Vladimir Kopynets
Кто-то сталкивался с внедрением защиты от скрапинга? Можете что посоветовать ?
смотря какую задачу решаете, но скорее всего готовьтесь к боли т.к. всё время нужно будет искать баланс между удобством для пользователей и ограничениями от скрапперов
источник

AP

Anatoliy Poloz in JavaScript.Ninja
если нужно решить проблему нагрузки на сайт то проще выдать статичные данные xml, csv того что нужно "скрапперам".
дальше идут варианты с капчей где надо и не надо, рандомизацией имен классов на нужных элементах и рейт лиминты на сами подключения с аналитикой логов приложения.
еще можно местами менять буквы и картинки каждый раз в случайном порядке, часть контента вместо текста отдавать срандеренными картинками и кучя всяких извращений в придачу.
всё зависит от ценности информации которую скрапят.
источник

VK

Vladimir Kopynets in JavaScript.Ninja
понял. Спасибо большое за развернутый ответ
источник

V

Valentin in JavaScript.Ninja
А есть лайтовый пример try catch promise рекурсивного вызова функции? Как лучше контролировать, что бы выйти из рекурсии вызовов?
источник

NL

Nazar LL in JavaScript.Ninja
Всем привет подскажите как хранить уникальные объекты ?
Пробовал так
new Set([{name: 2}, {name: 2}, {name: 'item1'}, {name: 'item1'}]).forEach(logSetElements);
но выводит все
источник

NL

Nazar LL in JavaScript.Ninja
logSetElements - console.log(val)
источник

NL

Nazar LL in JavaScript.Ninja
понимаю что каждый объект это ссылка но, как быть?
источник

R

Remite in JavaScript.Ninja
фильтровать по признаку уникальности
источник

OD

Oleh Diian in JavaScript.Ninja
Nazar LL
понимаю что каждый объект это ссылка но, как быть?
умного не скажу, но можно json.stringify использовать
источник

R

Remite in JavaScript.Ninja
ну для плохих мальчиков можно превратить обьекты с помощью стрингифая и заюзать сет
но...
источник

L

L in JavaScript.Ninja
Лучше сделать фильтр, или на крайний случай кастомную коллекцию, аля ObjectSet, нет?
источник

II

Ilya Izilanov in JavaScript.Ninja
в лодаше есть uniqWith, там кастомный компаратор для элементов
источник

NL

Nazar LL in JavaScript.Ninja
ребята спасибо за варианты!
источник

j

john john in JavaScript.Ninja
Народ у меня такой вопрос на счёт Next.js Пытаюсь понять как его лучше склеить с back-end. На сколько я понял есть три варианта. Первый это зайти через api folder в pages. Официально Next.js говорит что в большинстве случаев этого достаточно. Есть второй вариант. Это сделать custom server. Можно но Next.js не рекомендует. Есть третий вариант. Это обычный back-end на Express.js например. Я выбрал третий вариант. Может я чего-то не понимаю. Зачем первые два варианта.
источник

Д

Дима 🎈 in JavaScript.Ninja
Илья, спасибо огромное за последнее видео! От души посмеялся. Если не считать совсем уж трешевых "упрощений", то именно так развивался ранее любой мой проект 😄
источник

ii

iCheater iCheater in JavaScript.Ninja
Привет! как называется ормка, которая работает типо так "мы описываем в запросе объект данных, который хотим получить"
источник

ii

iCheater iCheater in JavaScript.Ninja
"максимально абстрактный вопрос"
источник

ii

iCheater iCheater in JavaScript.Ninja
graphql.org  всем спасибо
источник