节点js谷歌驱动器api错误

时间:2018-01-29 10:14:08

标签: javascript node.js google-api google-drive-api node-modules

我正在尝试使用Google Node.js client library访问Google Drive API,因此我可以将一些文件上传到我的云端硬盘帐户,但我遇到了这样的错误:

drive.files.create({
^

ReferenceError: drive is not defined
    at Object.<anonymous> (/Applications/MAMP/htdocs/google_drive/upload.js:16:1)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

我正在使用文档示例:

var fs = require('fs');
var readline = require('readline');
var google = require('googleapis');
var googleAuth = require('google-auth-library');

var fileMetadata = {
    'name': 'photo.jpg'
};
var media = {
    mimeType: 'image/jpeg',
    body: fs.createReadStream('files/photo.jpg')
};
drive.files.create({
    resource: fileMetadata,
    media: media,
    fields: 'id'
}, function (err, file) {
    if (err) {
        // Handle error
        console.error(err);
    } else {
        console.log('File Id: ', file.id);
    }
});

有人可以帮忙解决这个问题吗?。

2 个答案:

答案 0 :(得分:2)

您需要先定义它。

var drive = google.drive("v3");

在Google的文档中查找适当的方法:

https://github.com/google/google-api-nodejs-client/#authorizing-and-authenticating

答案 1 :(得分:0)

我相信你的const google声明应该使用解构赋值。如,

const {google} = require(googleapis);

然后你这样声明drive

const drive = google.drive({version: 'v3',  auth});

auth是授权的OAuth2客户端。