CNode

nodejs边读取文件边插入数据库问题

问答
PpywCode发布于6 年前最后回复6 年前4 回复2810 浏览0 收藏

各位大神,我想请教一个问题,文件读取边读边插入数据库中,当达到一定数量是插入数据中,因为是异步的插入数据库总是在文件读取完成之后才进行,因为我的文件数据比较大导致内存占用很大从而程序崩溃,请问各位有什么比较好的解决办法吗

查看回复

回复 (4)

Z
zhangxh1023#1·6 年前

看你读取的是什么文件喽 读取一部分, 插入数据库, 然后再继续读取下一部分.

L
luanxuechao#2·6 年前

1楼正解

N
nnliang#3·6 年前

readline了解一下

C
chenkai0520#4·6 年前

之前写过一个处理大文件,你改一下应该就可以用了

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);
  }
}
参与回复
登录后即可参与回复。登录