Ваш код завершается, потому что вы вызываете req.end
до того, как будут вызваны какие-либо события. Внутри этих API используется API-интерфейс EventEmitter
в NodeJS, поэтому он публикует события в каналах, которые их слушают, но, поскольку все это происходит асинхронно, req.end
вызывается до того, как любое из этих событий будет запущено.
Вы можете значительно упростить свой код, используя модуль request
. Просто соберите это с вашими зависимостями.
Я немного реорганизовал ваш код для использования async / await , поэтому мне нужно было запросить обратный вызов. Это хорошая практика. Если вы хотите отправить уведомление, когда что-то идет не так, просто поместите код внутри блока catch
.
'use strict';
const target = 'https://www.google.com'; // Change this one
const request = require('request')
const handler = async (event) => {
try {
const data = await new Promise((res, rej) => {
request.get(target, (err, data) => {
if (err) {
return rej(err)
}
return res(data)
})
})
console.log(data)
} catch (e) {
console.log(e)
//send notification
}
};