各位大神,我想请教一个问题,文件读取边读边插入数据库中,当达到一定数量是插入数据中,因为是异步的插入数据库总是在文件读取完成之后才进行,因为我的文件数据比较大导致内存占用很大从而程序崩溃,请问各位有什么比较好的解决办法吗
看你读取的是什么文件喽 读取一部分, 插入数据库, 然后再继续读取下一部分.
1楼正解
readline了解一下
之前写过一个处理大文件,你改一下应该就可以用了
const { once } = require('events'); const fs = require('fs'); const { createInterface } = require('readline'); async function processLineByLine(path, handler) { let res = []; try { const rl = createInterface({ input: fs.createReadStream(path), crlfDelay: Infinity }); rl.on('line', (line) => { res.push(handler(line, res)); }); await once(rl, 'close'); console.log('文件已处理'); return res; } catch (err) { console.error(err); } }
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
看你读取的是什么文件喽 读取一部分, 插入数据库, 然后再继续读取下一部分.
1楼正解
readline了解一下
之前写过一个处理大文件,你改一下应该就可以用了