此代码来自oauth nodesjs。 我想问为什么我们使用' {}' var google周围?我也试过没有' {}'并得到错误OAuth2未定义。我无法理解这里发生的事情。
var {google} = require('googleapis');
var OAuth2 = google.auth.OAuth2;
答案 0 :(得分:1)
根据Changelog from google-api-nodejs-client,您必须在代码中实现 V26.0.0以后的一些更改,正好提到了您遇到的问题。我还花了一些时间才想出这个......
BREAKING CHANGE:此库现已针对es6模块进行了优化。在以前的版本中,您可以像这样导入库:
const google = require('googleapis');
在此版本和将来版本中,您必须使用命名导入:
const {google} = require('googleapis');
您也可以引用类型来实例化新实例:
const {GoogleApis} = require('googleapis');
const google = new GoogleApis();
答案 1 :(得分:1)
为此答案添加一点 - 这就是所谓的解构分配。你可以在这里阅读它们:
http://2ality.com/2015/01/es6-destructuring.html
您在此处查看的代码:
const {google} = require('googleapis');
与看起来像这样的代码相同:
const google = require('googleapis').google;
这只是es6中添加的一种方便的简写。当我们转向ES模块时,我们在googleapis包中进行了更改,这些模块不能很好地使用export=foo
样式语法。希望这有帮助!