Зацикливание моих javascript logi c на файлы в папке - PullRequest
0 голосов
/ 23 февраля 2020

Как бы я oop этот сценарий над файлами в папке? Так что моя функция curl загружает все стенограммы и аудио файлы на этот сайт с помощью автоматического подхода. (Более низкое качество - это веб-сайт, который позволяет пользователям извлекать json объекты из транскриптов и даже позволяет нам находить время начала и окончания предложений с помощью аудио.)

 const getAligned = require('./getAudioTranscript.js');  // require getAudioTranscript.js, file ext not required, but need ./ to indicate it is a local file
    getAligned.writeFile('_rJOSDgDG0A.m4a', '_rJOSDgDG0A.txt');

    module.exports = {
            //var request = curl.request(default_options);
            writeFile: (audioFilePath, textFileName) => {
                const curl = require('curlrequest');
                let options = {
                    method: 'POST',
                    form: [
                        "audio=@" + audioFilePath,
                        "transcript=@" + textFileName
                    ],
                    url: 'http://localhost:32768/transcriptions?',
                };
                let startDate = new Date().getTime();
                console.log(startDate);
                curl.request(options, function (err, data, meta) {
                    //res.send({ alignment: data });
                    console.log(options);
                    //del.sync([textFileName]);
                    let endDate = new Date().getTime();
                    console.log((endDate - startDate) / 1000);
            });
        },
      };

1 Ответ

0 голосов
/ 23 февраля 2020

Во-первых, вы должны получить все файлы в каталоге. Это можно сделать в node.js, используя fs.readdir(path, callback). Обратный вызов принимает функцию с ошибкой и массив файлов, содержащий имена всех файлов.

const fs = require('fs');
const path = require('path');

fs.readdir('dir_path', (err, files) => {
    //check error

    for (const file of files) {
        //check if it is a .m4a file, so that every pair gets only send once
        if (path.extname(file) === '.m4a') {
            const txt_file= path.basename(file, '.m4a') + '.txt';
            getAligned.writeFile(path.join('dir_path', file), path.join('dir_path', txt_file));
        }
    }
});

Дополнительная информация в документации node.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...