【问题标题】:Getting api using https request function使用https请求函数获取api
【发布时间】:2022-01-17 15:23:36
【问题描述】:

我遇到了一些问题

function getId(username){
const https = require("https")
let id = ""
let data = ``
https.get(`https://api.roblox.com/users/get-by-username?username=${username}`, (response) =>{
    response.on('data', (chunk) => {
        data += chunk;
    })
    response.on('end', () =>{
        if(data){
          id = JSON.parse(data).Id
        }
    })
})
.on('error', (error) => {
   console.log(error)
})
return id
}

所以我的目标是使用getId("IHZAQSTORM33") 和预期结果,它将返回用户 ID (1684676332)。但相反,它给了我(“”)。它给了我一个冒号
是的,我正在尝试连接到 roblox api。

【问题讨论】:

标签: node.js https


【解决方案1】:

使用promise返回响应对象,如代码所示。

  1. 你也可以参考链接查看nkron的评论:

Where is body in a nodejs http.get response?

function getId(username) {
  const https = require('https');
  let id = '';
  let data = '';
  const url = `https://api.roblox.com/users/get-by-username?username=${username}`;
  return new Promise((resolve, reject) => {
    https
      .get(url, (response) => {
        response.on('data', (chunk) => {
          data += chunk;
        });
        response.on('end', () => {
          resolve(data);
        });
      })
      .on('error', reject);
  });
  //return id
};


(async () => {
  const responseObject = await getId('IHZAQSTORM33');
})();

  1. 有关 async 和 await 的更多信息,请参阅此链接: await is only valid in async function

【讨论】:

  • 哇,我不相信我的问题解决了,谢谢兄弟,你让我的工作更轻松了
猜你喜欢
  • 1970-01-01
  • 2016-06-29
  • 2018-02-04
  • 1970-01-01
  • 2017-01-04
  • 2017-10-22
  • 2016-09-08
  • 1970-01-01
  • 2022-01-24
相关资源
最近更新 更多