#node.js #https #higher-order-functions
Вопрос:
Я пытаюсь отправить http-запрос при входе в событие, но выходные данные консоли в функции более высокого порядка не работают.
exports.handler = async (event) => {
const req = https.get('https://test.com', (res) => {
console.log('statusCode:', res);
console.log('headers:', res.headers);
let data = "";
res.on('data', (d) => {
data = d;
});
res.on('end', () => {
let url = JSON.parse(data);
console.log(url);
});
}).on('error', (e) => {
console.error(e);
});
return 0;
};
Рад за любую помощь, которую я могу получить!
Ответ №1:
Я обновил фрагмент кода, который вы предоставили,
const https = require('https');
const func = async () => {
const req = https.get('https://test.com', (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
let data = "";
res.on('data', (d) => {
data = d;
});
res.on('end', () => {
console.log({data})
let url = JSON.parse(data);
console.log(url);
});
}).on('error', (e) => {
console.error(e);
});
return 0;
};
func();
console.log('statusCode:', res.statusCode);
это правильный способ извлеченияstatusCode
изres
.let url = JSON.parse(data);
data
это не json, он не может быть проанализирован
res
является ли instanceOf
IncomingMessage
- https://nodejs.org/dist/latest-v14.x/docs/api/all.html#http_class_http_incomingmessage
- Ознакомьтесь с документацией, чтобы понять, что передается при возникновении событий
Запустите обновленный код, чтобы увидеть, что вошло в stdOut