如何从 Nodejs 打字稿中的 apiResponse 读取数据?

how to read data from apiResponse in Nodejs typescript?

我想从 googleapis 调用中读取数据。我正在使用异步等待。但是我不确定如何读取我返回的数据。

async function makeCall(params:String){
  const apiResponse = await goopleapi.particular.get(params);
  console.log(`not really sure how to read -- ${apiResponse}`;
  // problem is the log prints [object Object].
}

如何获取从打印 [object Object] 到响应的实际内容的日志?最后,我想阅读返回的 json——我该怎么做?谢谢。

以防万一。我使用 Firebase 作为 Typescript

的后端

更新 1

有问题的 api 用于计费。如 https://www.googleapis.com/auth/androidpublisher。我打电话给.purchases.products.get。当我尝试用 JSON.parse(apiResponse) 解析响应时,出现错误:

SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at getItem (/srv/lib/index.js:31:69)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:145:8)

文档:https://developers.google.com/android-publisher/api-ref/purchases/products/get

更新 2

这是我需要解析成 json 的 api 响应。我尝试使用 JSON.parse(apiResponse) 但出现错误:

{ config: 
   { url: 'https://www.googleapis.com/androidpublisher/v2/applications/mypath',
     method: 'GET',
     paramsSerializer: [Function],
     headers: 
      { 'Accept-Encoding': 'gzip',
        'User-Agent': 'google-api-nodejs-client/2.0.0 (gzip)',
        Authorization: 'Bearer somecode',
        Accept: 'application/json' },
     params: {},
     validateStatus: [Function],
     retry: true,
     responseType: 'json' },
  data: 
   { kind: 'androidpublisher#productPurchase',
     purchaseTimeMillis: '111222333',
     purchaseState: 0,
     consumptionState: 1,
     developerPayload: '',
     orderId: 'some string',
     purchaseType: 0 },
  headers: 
   { 'alt-svc': 'quic=":111"; ma=33445566; v="a string"',
     'cache-control': 'private, max-age=0, must-revalidate, no-transform',
     connection: 'close',
     'content-encoding': 'gzip',
     'content-type': 'application/json; charset=UTF-8',
     date: 'Fri, 14 Jun 2019 12:40:12 GMT',
     etag: '"some string"',
     expires: 'Fri, 14 Jun 2019 12:40:12 GMT',
     server: 'GSE',
     'transfer-encoding': 'chunked',
     vary: 'Origin, X-Origin',
     'x-content-type-options': 'nosniff',
     'x-frame-options': 'SAMEORIGIN',
     'x-xss-protection': '1; mode=block' },
  status: 200,
  statusText: 'OK' }

错误还是和"update 1"

一样

模板字符串将在部分上调用 toString。你需要做

console.log('You need to pass it as a parameter', apiResponse)

如果要将实际对象打印到控制台。

该对象已被解析。错误是将 json 传递给需要字符串的 JSON.parse()。

[object Object] 从模板文字中的对象 toString() 方法返回,以避免这种情况: console.log('Some string',apiResponse);

如果还有问题,请尝试 console.log(JSON.stringify(apiResponse))