Node.js функция высшего порядка

#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

Запустите обновленный код, чтобы увидеть, что вошло в stdOut