Закрыть
npm

Debugger Редактировано: 28.08.2020 в 04:45

Очень часто приходится дебажить программы, и, так как в Easy VK много моментов скрыто от программиста, я написал дебагер, который раскрывает все эти моменты и дает понять, что вообще происходит в Easy VK, куда он делает запросы, что отправляет, что получает в ответ. Таким образом, даже в тех программах, где кажется вообще нереально понять, что произошло, можно использовать Debugger для выяснения обстоятельств.

# Как это работает?

Когда Easy VK делает запросы, получает ответы, отправляет данные, дебаггер получает всю эту информацию. Он работает по принципу слушателя, когда он получает информацию, в нем вызывается событие, и Вы таким образом можете получать данные, которые приходят в дебагер

Раньше в Easy VK использовались разны дебагеры для разных этапом работы Easy VK: авторизация, и непосредственно сама работа с API

Теперь все дебагеры объеденены в один класс easyvk.Debugger, который вы можете подключать к своему проекту очень просто

Подключение

const easyvk = require('easyvk')
const { Debugger } = easyvk

let myDebugger = new Debugger();

myDebugger.on('request', (event) => {
  console.log(event)
})

myDebugger.on('response', (event) => {
  console.log(event)
})

easyvk({
  debug: myDebugger, // Подключаем выбранный дебаг
  ... {}
}).then(vk => {
	
  vk.call(...['', {}]).catch(console.error)

})

Debugger.EVENTS

Вы всегда можете использовать внутренние обозначения событий, если что-то вдруг изменилось


myDebugger.on(Deubgger.EVENT_REQUEST_TYPE, () => {
  console.log('Request!')
})

myDebugger.on(Deubgger.EVENT_RESPONSE_TYPE, () => {
  console.log('Response!')
})

EventContext

Это объект самого события (обобщенного)

EventContext.toString() - представляет события в строковом виде для ведения логов

EventContext.moment - момент времени, в которое произошло событие

EventContext.type - тип события (Debugger.EVENT_RESPONSE_TYPE или Debugger.EVENT_REQUEST_TYPE)

myDebugger.on('request', (event) => {
  console.log(event.toString())
})

Запрос

Событие запроса имеет общий вид, поэтому несложно будет понять, где именно произошло событие и когда

  • url - адрес сервера, на который делается запрос
  • query - данные запроса (для GET метода строка querystring, для POST объект form)
  • method - метод запроса GET или POST
  • section - есть только в дочерних модулях Easy VK (секция, в которой произошел запрос)

    Возможные значения:

    httpClient - HTTP клиент
    longpoll - User LongPoll
    httpClient - HTTP клиент
    vk.call - Запрос метода vk.call
    streamingAPI - Streaming API
    widgets - Виджеты

myDebugger.on('request', ({method, query}) => {
  console.log('[Request] on ', method, query)
})

Ответ

Событие ответа тоже имеет общий вид.

  • body - тело ответа сервера (оригинальный)
  • section - есть только в дочерних модулях Easy VK (секция, в которой произошел запрос)

    Возможные значения:

    httpClient - HTTP клиент
    longpoll - User LongPoll
    httpClient - HTTP клиент
    vk.call - Запрос метода vk.call
    streamingAPI - Streaming API
    widgets - Виджеты

myDebugger.on('response', ({body}) => {
  console.log('[Responsed] width ', body)
})