node.js - 如何从 Accounts.txt 中获取一组以上的 User:Pass
问题描述
我有一个用户名列表:密码,我想将它们分开,我该怎么做:
let username = usernameValue;
let password = passwordValue;
这样我就可以拥有一个包含 10 多个用户名/密码的大列表,我的脚本可以自动从 txt 文件中提取这些用户名/密码,然后登录到每个单独的帐户。
const fs = require('fs')
const path = require('path')
const accounts = fs.readFileSync(path.resolve('./../../settings/accounts.txt'), 'utf8')
const [usernameValue, passwordValue] = accounts.split(':');
console.log(usernameValue);
// 'username'
console.log(passwordValue);
// 'password'
上面的部分代码取自我在这里的原始问题
帐户.txt
test:test
test2:test2
test3:test3
输出
test - username
test - password
test2 - username
它不会输出每一个值,我也不知道为什么。
解决方案
如果是一行一行的,你可以使用 package readline
。例如:
const readline = require("readline");
const fs = require("fs");
const rl = readline.createInterface({
input: fs.createReadStream(__dirname + "/accounts.txt"),
});
rl.on("line", (line) => {
const [usernameValue, passwordValue] = line.split(':');
console.log(`${usernameValue} - ${passwordValue}`);
});
如果您想要线路输出之间的延迟,您可以放置一个间隔并处理存储在缓冲区中的信息:
const readline = require("readline");
const fs = require("fs");
const rl = readline.createInterface({
input: fs.createReadStream(__dirname + "/accounts.txt"),
});
const buffer = [];
let isDonde = false;
rl.on("line", (line) => {
buffer.push(line.split(':'));
});
rl.on("close", () => {
isDonde = true;
})
let interval = setInterval(() => {
if (!buffer.length) {
if (isDonde) {
clearInterval(interval);
}
return;
}
const [usernameValue, passwordValue] = buffer.shift();
console.log(`${usernameValue} - ${passwordValue}`);
}, 1000); // higher is more time between logs
推荐阅读
- javascript - 将一个对象转换为另一个打字稿
- javascript - 如果屏幕尺寸改变,如何改变圆圈的大小?
- c# - 我应该为 HttpPostedFileBase 读取类型使用什么?
- mysql - 如果使用 ST_GeomFromGeoJSON 执行而不是查询,则 mysql 上的通信包格式错误
- node.js - 未在nodejs中接收UDP多播
- magento - Magento 2 & Temando:“已对此部分进行了信息更改,但尚未保存。此选项卡包含无效数据。”
- oracle - oracle - 根据顺序在一个表中收集多个表
- python - 阅读所有
进入数组python BS4
- django - 轮播滑块在 Django 列表中显示图像
- azure - Spark 处理如何处理来自集群外部的数据(如 azure blob 存储)?