readline 逐行读取

在工作中,有时候需要逐行读取文档,可以使用node.js中核心模块readline。

假如domain.txt里有1000个域名,且每行一个,获取所有域名并处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import fs from 'fs'
import readline from 'readline'

const inputStream = fs.createReadStream('./domain.txt')
const lineReader = readline.createInterface({
input: inputStream
})

let domains = []

lineReader.on('line', function (line) {
// 触发line事件,把每行域名放置数组domains里
domains.push(line.trim())
})

lineReader.on('close', () => {
// 当所有行被读取完后,触发close事件,在这里可以处理获取的domains
console.log(domains)
})

在我们获取到所有域名后,我们可以做一些其他操作,比如插入数据库。