首页 > 解决方案 > 在 javascript [Node JS] 中以 json 格式访问 http 请求

问题描述

我有以下片段,它以 json 格式获取数据,但我想返回数据评估器,而不仅仅是在控制台中打印出来。

var request = require('request');

var headers = {
  'Connection': 'keep-alive',
  'Accept': 'application/json, text/plain, /',
  'User-Agent': 'Mozilla/5.0 (Macintosh; Ontel Mac OS X 11_2_3) AppleWebKit/537/36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36',
  'Content-Type': 'application/json',
  'Accept-Language': 'en, zh-TW;q=0.8,en-US;q=0.7'
};

const PublicKeyBase58Check = "";
const Username = "elonmusk";

var dataString = '{"PublicKeyBase58Check":"' + PublicKeyBase58Check + '","Username":"' + Username + '"}';

var options = {
  url: 'https://api.bitclout.com/get-single-profile',
  method: 'POST',
  headers: headers,
  body: dataString
};

function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
    var profile = JSON.parse(body);
    return profile;
  } 
};

request(options, callback);

我需要在 request function() 中进行哪些更改,以便我可以从回调函数访问 json 对象配置文件并将其用于以后的目的?

标签: javascriptnode.jsjson

解决方案


您需要使用 async/await 或 Promises 或 Observables 或任何处理异步请求的 npm 包来编写异步代码。您使用的 npm 包(请求)已弃用。如果您想继续使用它,可以在函数内添加其余的执行。无需返回值。

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
        var profile = JSON.parse(body);
        /*
         Write rest of the code here
        */
    }
};

request(options, callback);`

推荐阅读