我想知道如何将从用户输入收到的值与存储在node.js中的file.txt中的值进行比较。
更新:i 不需要将密码存储在纯文本中。文本文件仅用于验证管理凭据。这意味着凭据可以通过文本文件变化,并且管理员必须知道凭据才能登录。这可能没有意义,但它是出于学习目的。
出于学习目的,只需比较字符串即可。如果您的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();
});
});