Как записать массив данных в текстовый файл из вызова HTTPS API? - PullRequest
0 голосов
/ 02 февраля 2019

Я реализовал API из API, результирующие данные должны хранить его в файле .txt.При вызове API данные должны записываться в файл .txt.

Этот вызов API содержит массивы данных, полученных со стороны клиента.Результатом является добавление всего массива элементов в один массив.Этот единственный массив должен быть записан в файл в Node.js.

Мой код:

exports.Entry = functions.https.onRequest((req, res) => {
  var fs = require('fs');
  var a = ['6', '7', '8'];
  var b = ['22', '27', '20'];
  var eachrecord = [];

  for (var i = 0; i < a.length; i++) {
    eachrecord += a + b;
  }

  console.log("eachrecord is", eachrecord);

  //Writing each record value into file
  fileWriteSync('/Users/lahariareti/Desktop/deyaPaydevelopment/deyaPayandroidRETROFIT/functions/filewriting.txt');

  function fileWriteSync(filePath) {
    var fd = fs.openSync(filePath, 'w');
    var length = eachrecord.length;

    for (i = 0; i < length; i++) {
      var eachrecordwrite = fs.writeSync(fd, eachrecord[i] + '\n', null, null);

      console.log("hii", eachrecord[i]);
    }

    fs.closeSync(fd);
  }
});

Когда я развернул и протестировал, он показывает ошибку как:

"Ошибка: ENOENT: такого файла или каталога нет, откройте '/Users/lahariareti/Desktop/deyaPaydevelopment/deyaPayandroidRETROFIT/functions/filewriting.txt'"

Как записать данные вфайл из вызовов API с использованием Node.js?

1 Ответ

0 голосов
/ 02 февраля 2019

Когда я развернул и протестировал

Я полагаю, вы запустили этот код на своем компьютере, он работает, поскольку существует путь /Users/lahariareti/Desktop/deyaPaydevelopment/deyaPayandroidRETROFIT/functions/, а затем вы запустиликод на другом компьютере, и он больше не работает?

fs.open с флагом w попытается создать файл, но не создаст родительский каталог / каталоги.

Чтобы не указывать полный путь без использования относительных путей, вы можете использовать комбинацию __dirname и path.join, например, так:

fileWriteSync(path.join(__dirname, '../functions/filewriting.txt'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...