Google Drive API:ENOENT - 但我的文件位于同一目录中

时间:2018-05-30 02:27:57

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

ENOENT - 但我的文件只在同一个目录中...... 大家好我尝试使用API​​将文件birds.mp3发送到我的Google云端硬盘。该文件必须由要发送的函数到达。

尽管我尝试发送的文件与代码所在的文件夹相同,但我的控制台还是回复了我:

  

events.js:183

     扔掉呃//未处理的错误'事件

     

^

     

错误:ENOENT:没有这样的文件或目录,打开' ./ birds.mp3'

这是我的树:

-- folder
  |-- birds.mp3
  |-- quickstart.js

这是我的quickstart.js

module.exports.insertDrive = function (req) {
  console.log("callback reached.")
var url = req.body.url;
var folderId = 'id';
var fileMetadata = {
  'name': req.body.word,
  parents:  "id"
};
var media = {
  mimeType: 'audio/*',
  body: fs.createReadStream("./birds.mp3") // PATH FUNCTION HERE
};
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);
  } 
})};

我无法弄清楚为什么我的档案无法联系到。我尝试了几个技巧,比如path.resolve和所有,我试着把我的birds.mp3推到几个文件夹中,如果有的话,但是失败了。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您尝试从与当前模块相同的目录加载文件并将其传递给Google API,请使用__dirname代替././使用当前工作目录,该目录将取决于整个程序的调用方式,并且不会指向您的模块目录。

因此,如果目标文件与模块位于同一目录中,请更改:

fs.createReadStream("./birds.mp3")

到此:

fs.createReadStream(path.join(__dirname, "birds.mp3"));