使用 createWriteStream 为每个请求创建单独的文件

问题描述

我正在使用 URL 发出多个 Axios 请求并使用 Cheerio 收集数据。 一切都很好,我只是不知道如何防止数据被使用 response 方法生成文件中的前一个 createWriteStream 覆盖。

我正在尝试为每个请求创建不同的文件,最好使用唯一的名称,但在文档中没有找到任何解决方案。

const axios = require("axios").default;
const cheerio = require('cheerio');
const fs = require('fs');
const writeStream = fs.createWriteStream('./names/names.text')

const getTitle = (res) => {
   const $ = cheerio.load(res.data);
   const names = $('.name_wrap > .name')

   names.each(function (i,el) {
      const item = $(el).text().replace(/^\s*$/g,'')
      writeStream.write(`${item}\n`)
   });
}

// URL'S Array
let URLS = []

for (let index = 1; index <= 3; index++) {
   let url = `https://www.example.com/name-1-${index}`
   URLS.push(axios.get(url))
}

Promise.all(URLS)
   .then(responses => {
      getTitle(responses[0])
      getTitle(responses[1])
   });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)