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)
})