我对NodeJS很陌生,因此欢迎您提供任何帮助!

我可以读取目录中的所有文件。它向我显示了所有文件名和扩展名。所有文件均为* .csv。

像这样:

var fs = require('fs');
var junk = require('junk');
var csv = require('fast-csv');

const diretorio = 'download';
const nomeArquivo = diretorio

let dirBuf = Buffer.from(diretorio);

let arquivos = fs.readdirSync(diretorio);
    console.log(arquivos.filter(junk.not));
    arquivos.filter(junk.not).forEach(file => {
        var conteudo = fs.readFile(dirBuf, 'utf8', function(){
        });
  });


现在,我想循环打开每个文件以将数据插入mysql:

var stream = fs.createReadStream(diretorio + "/Notify_273_exp_complete_2018-01-18 19.15.25.csv");

csv
 .fromStream(stream, {headers : false},{ignoreEmpty: true})
 .on("data", function(data){
     console.log(data);
 })
 .on("end", function(){
     console.log("done");
 });


因此,我可以读取目录中的所有文件并读取内容,但不能同时读取。
我需要做的是:

将文件名放入var中:

var stream = fs.createReadStream(diretorio + filename);


因此,脚本会读取所有文件,然后将内容插入表中。我与MySQL的连接:

// CONECTION WITH MYSQL
var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "*****",
  password: "******",
  database: "*******"
});

con.connect(function(err) {
    if (err) throw err;
    console.log("Connected!");
});
// END CONNECTION


最后。我的逻辑对吗?还有另一种方法吗?
有人可以帮忙吗?

最佳答案

这个人用这个救了我的命:
https://code-maven.com/list-content-of-directory-with-nodejs

var fs = require('fs');
var junk = require('junk');
var csv = require('fast-csv');

const diretorio = 'download';
const nomeArquivo = diretorio

fs.readdir(nomeArquivo, function(err, items) {
    // console.log(items.filter(junk.not));

    for (var i=0; i<items.length; i++) {
        nome = items[i];
        var stream = fs.createReadStream(diretorio + '/' + nome);
    csv
     .fromStream(stream, {headers : false},{ignoreEmpty: true})
     .on("data", function(data){
         console.log(data);
     })
     .on("end", function(){
         console.log("done");
     });
    }
});


在终端上像微风一样运行!
现在只需要将数据保存到数据表中即可!

10-08 14:44