栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

NodeJS,Promise,流-​​处理大型CSV文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NodeJS,Promise,流-​​处理大型CSV文件

在下面找到一个完整的应用程序,该应用程序可以正确执行所需的任务:它将文件读取为流,将其解析为CSV,并将每一行插入数据库。

const fs = require('fs');const promise = require('bluebird');const csv = require('csv-parse');const pgp = require('pg-promise')({promiseLib: promise});const cn = "postgres://postgres:password@localhost:5432/test_db";const rs = fs.createReadStream('primes.csv');const db = pgp(cn);function receiver(_, data) {    function source(index) {        if (index < data.length) { // here we insert just the first column value that contains a prime number; return this.none('insert into primes values($1)', data[index][0]);        }    }    return this.sequence(source);}db.task(t => {    return pgp.spex.stream.read.call(t, rs.pipe(csv()), receiver);})    .then(data => {        console.log('data:', data);    }    .catch(error => {        console.log('ERROR:', error);    });

请注意,我唯一改变的是:使用library

csv-parse
代替
csv
,作为更好的选择。

增加了使用方法stream.read从SPEX库,它正确地供应可读与承诺使用流。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569013.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号