node.js 将 csv 的每一行转换为 sha1 并输出到新的 csv
node.js convert each line of a csv to sha1 and output to a new csv
我有点新手,所以要温柔。高层,我在 .csv 中有一堆电子邮件地址。出于隐私目的,我想将每个电子邮件地址转换为 sha1。我正在 node.js 中尝试,这是我目前所拥有的:
var crypto = require('crypto');
var fs = require('fs');
var parse = require('csv-parse');
var async = require('async');
var inputFile = 'emailList.csv';
var outputFile = 'sha1List.csv';
var hash = crypto.createHash('sha1')
var parser = parse({delimiter: ','}, function (err, data) {
async.eachSeries(data, function (line, callback) {
// do something with the line
hash.write(line).then(function() {
// when processing finishes invoke the callback to move to the next one
hash.end();
callback();
});
})
})
fs.createReadStream(inputFile).pipe(parser).pipe(fs.createWriteStream(outputFile)) ;
但是,我的输出文件是零字节。我很确定问题在于线对象是一个流对象并且加密不能按照我实现的方式工作。我也尝试使用 sha1 模块作为 sha1(line).then(function etc etc etc.同样的结果。我应该在这里做什么?另外,如果有人有好主意,还没有嫁给 node.js。
这是我想出来的https://gist.github.com/cdurth/6735c82cd11c5a057bd4
不确定您输入的 csv 是什么样的,因此请相应地更改电子邮件在数组中的位置
我有点新手,所以要温柔。高层,我在 .csv 中有一堆电子邮件地址。出于隐私目的,我想将每个电子邮件地址转换为 sha1。我正在 node.js 中尝试,这是我目前所拥有的:
var crypto = require('crypto');
var fs = require('fs');
var parse = require('csv-parse');
var async = require('async');
var inputFile = 'emailList.csv';
var outputFile = 'sha1List.csv';
var hash = crypto.createHash('sha1')
var parser = parse({delimiter: ','}, function (err, data) {
async.eachSeries(data, function (line, callback) {
// do something with the line
hash.write(line).then(function() {
// when processing finishes invoke the callback to move to the next one
hash.end();
callback();
});
})
})
fs.createReadStream(inputFile).pipe(parser).pipe(fs.createWriteStream(outputFile)) ;
但是,我的输出文件是零字节。我很确定问题在于线对象是一个流对象并且加密不能按照我实现的方式工作。我也尝试使用 sha1 模块作为 sha1(line).then(function etc etc etc.同样的结果。我应该在这里做什么?另外,如果有人有好主意,还没有嫁给 node.js。
这是我想出来的https://gist.github.com/cdurth/6735c82cd11c5a057bd4
不确定您输入的 csv 是什么样的,因此请相应地更改电子邮件在数组中的位置