Попытка создать пользовательский конвейерный поток, чтобы я мог запустить файл через строку сценариев - PullRequest
0 голосов
/ 24 апреля 2020
const fs = require('fs');

var postExtract = require("./postextract.js");
var scoreAddress = require("./scoreaddress.js");
var leven = require("./levenshtein.js");

const Transform = require('stream').Transform;



//File containing unprocessed addresses
var fileName = ("Refinitiv_Address_GBR_10000.csv");
//Country we are looking at address of
var country = "UK";


const extract = new Transform({
    transform: (chunk, encoding, done) => {
        postExtract.CodeFileRead();
        done(null, null);
    }
});

const score = new Transform({
    transform: (chunk, encoding, done) => {
        scoreAddress.StartProcess();
        done(null, null);
    }
});

var funcDict = [extract, score];

StreamFunc(0);

function StreamFunc(func) {
    fs.createReadStream("Originals\\" + fileName)
        .pipe(funcDict[func])
        .on('end', () => {
            console.log("We are on script number " + func);
            if (func < funcDict.length) {
                StreamFunc(func+1);
            }
        });
}

Это код, который у меня сейчас есть после того, как сложить вещи из inte rnet. Цель состоит в том, чтобы я хотел передать файл через читаемый поток, чтобы этот файл был обработан сценарием postExtract, а затем чтобы выходной файл был прочитан сценарием ScoreAddress, и, таким образом, иметь возможность чтения выходного файла как ввод следующей функции. Я не уверен, верны ли мои идеи или есть что-то, что можно использовать, кроме пользовательского потока

В настоящее время проблема заключается в том, что он только запускает postExtract, а не scoreAddress, или запускает postExtract несколько раз над собой и выдает ошибки

Код не закончен, и, вероятно, есть многократные ошибки, я просто нахожусь в тупике

const fs = require('fs');

var postExtract = require("./postextract.js");
var scoreAddress = require("./scoreaddress.js");
var leven = require("./levenshtein.js");

const Transform = require('stream').Transform;


//File containing unprocessed addresses
var fileName = ("Refinitiv_Address_GBR_10000.csv");
//Country we are looking at address of
var country = "UK";

RunningShit();

function RunningShit() {
    postExtract.CodeFileRead();
    scoreAddress.StartProcess();
}

Это способ, которым я пытался сделать это сначала, однако это просто запускает их обоих вместе в одно и то же время, и не дожидается, пока первый закончится sh

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