Node.js Google API重命名导入的变量产生错误
我正在使用googleapis节点包授权JWT令牌。我遵循这个链接中的示例:如果我更改导入包的变量名,它将产生一个错误 为什么示例1可行,但示例2产生以下错误: 例1Node.js Google API重命名导入的变量产生错误,node.js,jwt,google-auth-library,Node.js,Jwt,Google Auth Library,我正在使用googleapis节点包授权JWT令牌。我遵循这个链接中的示例:如果我更改导入包的变量名,它将产生一个错误 为什么示例1可行,但示例2产生以下错误: 例1 'use strict' const { google } = require('googleapis') const scopes = 'https://www.googleapis.com/auth/analytics.readonly' const jwt = new google.auth.JWT( process
'use strict'
const { google } = require('googleapis')
const scopes = 'https://www.googleapis.com/auth/analytics.readonly'
const jwt = new google.auth.JWT(
process.env.CLIENT_EMAIL,
null,
process.env.PRIVATE_KEY,
scopes
)
const view_id = 'XXXXXXX'
jwt.authorize((err, response) => {
google.analytics('v3').data.ga.get(
{
auth: jwt,
ids: 'ga:' + view_id,
'start-date': '30daysAgo',
'end-date': 'today',
metrics: 'ga:pageviews'
},
(err, result) => {
console.log(err, result)
}
)
})
例2
'use strict'
const { googleapi } = require('googleapis')
const scopes = 'https://www.googleapis.com/auth/analytics.readonly'
const jwt = new googleapi.auth.JWT(
process.env.CLIENT_EMAIL,
null,
process.env.PRIVATE_KEY,
scopes
)
const view_id = 'XXXXXXX'
jwt.authorize((err, response) => {
googleapi.analytics('v3').data.ga.get(
{
auth: jwt,
ids: 'ga:' + view_id,
'start-date': '30daysAgo',
'end-date': 'today',
metrics: 'ga:pageviews'
},
(err, result) => {
console.log(err, result)
}
)
})
这种语法
const { google } = require('googleapis')
称为对象分解
它实际做的是加载所需的模块,并从该模块获取google
属性,并将其分配给一个变量,该变量也称为google
与此相同:
const google = require('googleapis').google;
var googleapi = require('googleapis').googleapi;
所以当你这样做的时候:
const { googleapi } = require('googleapis')
与此相同:
const google = require('googleapis').google;
var googleapi = require('googleapis').googleapi;
问题是,googleapis
模块没有导出名为googleapi
的属性
如果您确实希望名称为googleapi
,可以执行以下操作:
const { googleapi: google } = require('googleapis');
或
甚至这个:
const GoogleAPIs = require('googleapis');
const googleapi = GoogleAPIs.google;
?谢谢你的解释!不客气。请随意接受它作为正确答案;)