如何从 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))
我想从 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))