用CSV写节点js的匹配行
我正在与node js
婴儿的步骤。 第一个任务,逐行阅读一个分隔的文件,并吐出包含string“imputed”的行。
#!/usr/bin/env node var Csv = require("csv"), Fs = require("fs"); var foods = "/../data/sr26"; Csv() .from.stream( Fs.createReadStream(__dirname + foods + "/SRC_CD.txt"), {"delimiter": "^", "quote": "~"} ) .to(function(data, count) { console.log(data); }) .transform(function(row, index, callback) { //if (row[1].search(/imputed/) != -1) { process.nextTick(function() { callback( null, row[1].substr(0, 15) + "… " + row[1].search(/imputed/) + "\n" ) }); //} });
打印出来
Analytical or d… -1 Calculated or i… 14 Value manufactu… -1 Aggregated data… -1 Assumed zero… -1 Calculated from… -1 Calculated by m… -1 Aggregated data… -1 Manufacturer's … -1 Analytical data… -1
但是,将内部transform
的比较注释掉根本就没有输出。 我究竟做错了什么?
当asynchronous使用csv转换方法时 ,您必须调用callback 。
如果你用null
调用它,logging将被简单地跳过。
if (row[1].search(/imputed/) != -1) { process.nextTick(function() { callback( null, row[1].substr(0, 15) + "… " + row[1].search(/imputed/) + "\n" ) }); } else { callback(null, null); }