Ошибка типа: csv.fromPath не является функцией (преобразовать CSV-файл в сценарий sha1) - PullRequest
0 голосов
/ 21 апреля 2020

я пытаюсь выполнить пример сценария, который читает файл CSV. а затем сделать данные в SHA1 га sh. Я скопировал образец из этого git:

https://gist.github.com/cdurth/6735c82cd11c5a057bd4

Я получаю эту ошибку:

C:\Users\test\Desktop\convert\csvParseToSha1.js:14
 .fromPath(inputFile)
  ^

TypeError: csv.fromPath is not a function
    at Object.<anonymous> (C:\Users\Nope\Desktop\convert\csvParseToSha1.js:14:3)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47

Код образца:

var fs = require('fs');
var csv = require("fast-csv");
var sha1 = require('sha1');

var inputFile = 'emailList.csv';
var outputFile = 'sha1List.csv';

var csvStream = csv.format({headers: false}),
    writableStream = fs.createWriteStream(outputFile);

csvStream.pipe(writableStream);

csv
 .fromPath(inputFile)
 .on("data", function(data){
   var hashed = sha1(data[0])
   csvStream.write([hashed]);
 })
 .on("end", function(){
     csvStream.end();
     console.log("done");
 });

версия fast-csv - 4.1.3

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

для версии 'fast-csv'> = 3.0.0: - fromPath устарел

https://github.com/C2FO/fast-csv/blob/master/History.md#v300

0 голосов
/ 21 апреля 2020

, поэтому я изменил csv.fromPath () на csv.parseFile ()

var fs = require('fs');
var csv = require("fast-csv");
var sha1 = require('sha1');

var inputFile = 'emailList.csv';
var outputFile = 'sha1List.csv';

var csvStream = csv.format({headers: false}),
    writableStream = fs.createWriteStream(outputFile);

csvStream.pipe(writableStream);

csv
 .parseFile()(inputFile)
 .on("data", function(data){
   var hashed = sha1(data[0])
   csvStream.write([hashed]);
 })
 .on("end", function(){
     csvStream.end();
     console.log("done");
 });

и теперь я получаю это:

internal/fs/utils.js:535
    throw new ERR_INVALID_ARG_TYPE(propName, ['string', 'Buffer', 'URL'], path);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined
    at Object.open (fs.js:424:10)
    at ReadStream.open (internal/fs/streams.js:127:6)
    at new ReadStream (internal/fs/streams.js:115:10)
    at Object.createReadStream (fs.js:1820:10)
    at Object.exports.parseFile (C:\Users\Nope\node_modules\@fast-csv\parse\build\src\index.js:24:52)
    at Object.<anonymous> (C:\Users\Nope\Desktop\convert\csvParseToSha1.js:14:3)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14) {
  code: 'ERR_INVALID_ARG_TYPE'
}
...