node.js - 文本文件中的节点js输入值
问题描述
我想知道如何比较从用户输入接收的值与存储在 Node.js 中的 file.txt 中的值。
更新:我不需要以纯文本形式存储密码。该文本文件仅用于验证管理员凭据。这意味着凭据可以通过文本文件更改,并且管理员必须知道凭据才能登录。这可能没有意义,但它是出于学习目的。
解决方案
为了您的学习目的,只需比较字符串。如果您userInputPassword
是纯文本并且存储的密码admin.txt
是散列的,那么您必须admin.txt
在比较之前解密您的密码。
const fs = require('fs');
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
const read = fs.readFileSync('admin.txt', 'utf8');
console.log(read);
readline.question(`What's your email? `, (email) => {
const userInputEmail = email.trim();
console.log(`Email: ${email}`)
readline.question(`What's your password? `, (password) => {
const userInputPassword = password.trim();
console.log(`Password: ${password}`);
const [correctEmail, correctPassword] = read.split('\n').map(s => s.trim());
if (userInputEmail === correctEmail && userInputPassword === correctPassword) console.log('Logged in');
else console.log('Email or password is incorrect');
readline.close();
});
});
推荐阅读
- macos - 如何为特定部署 macOS 版本编译 OpenSSL 库?
- mongodb - 无法从由对象 ID 数组组成的子文档中删除对象 ID
- docker - 在 docker 容器控制台中获取上一个命令
- php - 如何验证数组中的两个日期是否与 Carbon 不同
- reactjs - 如何在 React Native 中播放一段 Lottie 动画(.json 文件)
- r - 为什么我的等高线图的范围这么小?
- yaml - Helm 合并和 dict 指令?
- java - 需要一个java程序来检测输入字符是否是元音
- c# - 具有相同会话的独立 .NET Core MVC 和 ReactJS Web 应用程序
- regex - 从数据框中的列中提取日期的正则表达式