Google Drive API: ENOENT - но мой файл находится в том же каталоге - PullRequest
0 голосов
/ 30 мая 2018

ENOENT - но мой файл находится в том же каталоге ... Привет всем, я пытаюсь отправить файл birds.mp3 на мой Google Drive с помощью API.Файл должен быть доступен для отправки функцией.

Несмотря на то, что файл, который я пытаюсь отправить, находится в той же папке, что и код, моя консоль возвращает мне:

events.js: 183

throw er;// Необработанное событие 'error'

^

Ошибка: 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 голосов
/ 30 мая 2018

Если вы пытаетесь загрузить файл из того же каталога, что и текущий модуль, и передать его в API Google, используйте __dirname вместо ./../ использует текущий рабочий каталог, который будет зависеть от того, как была вызвана вся программа, и не будет указывать на каталог вашего модуля.

Итак, если предполагаемый файл находится в том же каталоге, что и ваш модуль, тоизмените это:

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

на это:

fs.createReadStream(path.join(__dirname, "birds.mp3"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...