У меня есть часть регистрации и входа в систему, поэтому, когда кто -то зарегистрирован, он должен автоматически пересылать вас в раздел входа в систему, но он не делает этого, даже когда я вернул пользователя обратно в основной файл. Я не хочу добавлять await login () непосредственно в разделе регистрации, потому что я хочу сохранить его в чистоте. Вот код: < /p>
async function main() {
while(true){
const answer = (await question('\nWelcome to the Brza Pratka shipping company. Create account if you are new one or log in to the existing one! \n1. Signup\n2. Login\n3. Create an order \n4. Exit\nChoose one: ')).trim();
if(answer === '1'){ // SIGN UP SECTION
console.log('Proceeding to Sign Up...\n');
await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec
await signup();
const user = await login();
await admin(user);
break;
} else if(answer ==='2'){ // LOGIN SECTION
console.log('Proceeding to Log In...\n');
await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec
const user = await login();
await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec
await admin(user);
break;
} else if(answer === '3'){ // CREATING ORDER
await createOrder();
break;
} else if(answer === '4'){ // EXIT
rl.close();
console.log('Goodbye');
break;
} else{
console.log('❌ Invalid, you must enter from 1 to 4 to continue.\n');
}
}
}
main();
< /code>
выше - основной файл, в котором я все подключаю через импорт. < /p>
async function signup() {
const name = await askName();
const phoneNumber = await addPhoneNumber();
const email = await addEmail();
const password = await createPassword();
//////////////////////////////////
// HASHING AND SAVING THE NEW USER
const encryptedPassword = hashPassword(password); // encrypt the password
const newUser = {
name: name,
phoneNumber: phoneNumber,
email: email,
password: encryptedPassword
}
try {
const NEWUSER = saveUser(newUser); // save it inside JSON
console.log('✅ Account created. Proceeding to log in...\n');
await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec for login(no need but I wanted to be like in reality)
return NEWUSER;
} catch (error) {
console.error(error);
}
< /code>
} < /p>
выше - функция регистрации, где она принимает всю необходимую информацию и сохранение в качестве объекта в файле JSON через функцию SaveUser < /p>
function saveUser(user){
const users = loadFile(usersFile); // first call it to not overwrite users
users.push(user); // now add the new one
fs.writeFileSync(usersFile, JSON.stringify(users, null, 2)) // ATTENTION, if we write the file first without loading, it will overwrite thw whole file and we will lose all the users
// users, null, 2 is for better and cleaned code for reading
}
И вот функция Сохранить пользователь для сохранения в json
У меня есть часть регистрации и входа в систему, поэтому, когда кто -то зарегистрирован, он должен автоматически пересылать вас в раздел входа в систему, но он не делает этого, даже когда я вернул пользователя обратно в основной файл. Я не хочу добавлять await login () непосредственно в разделе регистрации, потому что я хочу сохранить его в чистоте. Вот код: < /p> [code]async function main() { while(true){ const answer = (await question('\nWelcome to the Brza Pratka shipping company. Create account if you are new one or log in to the existing one! \n1. Signup\n2. Login\n3. Create an order \n4. Exit\nChoose one: ')).trim();
if(answer === '1'){ // SIGN UP SECTION console.log('Proceeding to Sign Up...\n'); await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec await signup(); const user = await login(); await admin(user); break;
} else if(answer ==='2'){ // LOGIN SECTION console.log('Proceeding to Log In...\n'); await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec const user = await login(); await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec await admin(user); break;
} else{ console.log('❌ Invalid, you must enter from 1 to 4 to continue.\n'); } } }
main();
< /code> выше - основной файл, в котором я все подключаю через импорт. < /p> async function signup() { const name = await askName(); const phoneNumber = await addPhoneNumber(); const email = await addEmail(); const password = await createPassword();
////////////////////////////////// // HASHING AND SAVING THE NEW USER const encryptedPassword = hashPassword(password); // encrypt the password
try { const NEWUSER = saveUser(newUser); // save it inside JSON console.log('✅ Account created. Proceeding to log in...\n'); await new Promise(resolve => setTimeout(resolve, 2000)); // wait 2 sec for login(no need but I wanted to be like in reality) return NEWUSER;
} catch (error) { console.error(error); } < /code> } < /p> выше - функция регистрации, где она принимает всю необходимую информацию и сохранение в качестве объекта в файле JSON через функцию SaveUser < /p> function saveUser(user){ const users = loadFile(usersFile); // first call it to not overwrite users
users.push(user); // now add the new one fs.writeFileSync(usersFile, JSON.stringify(users, null, 2)) // ATTENTION, if we write the file first without loading, it will overwrite thw whole file and we will lose all the users // users, null, 2 is for better and cleaned code for reading [/code] } И вот функция Сохранить пользователь для сохранения в json