我对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");
});
}
});
在终端上像微风一样运行!
现在只需要将数据保存到数据表中即可!