为了账号安全,请及时绑定邮箱和手机立即绑定

如何在节点js中多次覆盖并将数据附加到同一个文件

如何在节点js中多次覆盖并将数据附加到同一个文件

慕神8447489 2023-05-25 15:42:21
我有一个“clients.txt”文件,其中有一个电子邮件列表。我尝试运行一个发送电子邮件的程序,我从文件中选择了一些要使用的电子邮件,在这种情况下,数字是 2。在我使用这两封电子邮件后,我想在没有它们的情况下覆盖“clients.txt”。问题是当我尝试只运行一次代码时,一切正常!但是如果我做一个循环,就会出现问题。期待看到你们的任何帮助。谢谢!我在下面添加代码。PS:抱歉我的英语不好!function readEmails(){    const fs = require('fs');    clients_list = fs.readFileSync('clients.txt', 'utf8').split('\n');    let filtered = clients_list.filter(function (el) {        return el != null && el != '';    });    return filtered}function dump_array(arr, file){    let fs = require('fs');    let file = fs.createWriteStream(file);    file.on('error', function(err) { /* error handling */ });    arr.forEach(function(v) { file.write(v + '\n'); });    file.end();}while_var = 0;while (while_var < 2){    while_var ++;    let all_clients = readEmails();    let selected_clients = [];    if (all_clients.length > 0){        selected_clients = all_clients.splice(0,2);        dump_array(all_clients, 'clients.txt');        console.log(selected_clients);    }else{        console.log('No more clients')    }}
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

const fs = require('fs');


function readEmails(){

    const clients_list = fs.readFileSync('clients.txt', 'utf8').split('\n');

    const filtered = clients_list

        // clear false, 0 and undefined too

        .filter(el => !!el) 

        // remove extra spaces and \r symbols

        .map(el => el.trim()); 

    return filtered;

}

function dump_array(arr, file){

    // Here you need sync method. 

    fs.writeFileSync(file, arr.join('\n')); 

    // And here was 'already declared' error in orginal code

}


let while_var = 0;

while (while_var++ < 2){

    let all_clients = readEmails();

    let selected_clients = [];

    if (all_clients.length > 0){

        selected_clients = all_clients.splice(0,2);

        dump_array(all_clients, 'clients.txt');

        console.log(selected_clients);

    }else{

        console.log('No more clients')

    }

}


查看完整回答
反对 回复 2023-05-25
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信