Executando verificação de segurança...
1
Carregando publicação patrocinada...
1
1

@Mespo quando você faz o JSON.stringify, todos as keys que tem valor undefined serão omitidas. Tendo dito isso, muito provavelmente os dados que você está enviando não estão chegando no req.body.

Poderia mostrar para a gente como que você está invocando isso?

A princípio, faz um console.log(req.body) para ver se os dados estão mesmo chegando ali.

A propósito, uma idea de refactoring (pora favor, não me entenda mal).

app.post('/register', (req, res) => {
   const { firstName, lastName, email, password, confirmPassword } = req.body

   const requiredFields = [firstName, lastName, email, password, confirmPassword]
   const anyFieldWithoutValue = requiredFields.find((field) => field.trim() === '')

   if (anyFieldWithoutValue) {
      return res.render('register', {
         message: 'Preencha todos os campos.'
      });
   }

   if (password !== confirmPassword) {
      return res.render('register', {
         message: 'As senhas não coincidem.'
      });
   }

   if (admin.some(user => user.email == email)) {
      return res.render('register', {
         message: 'Esse e-mail já está em uso.'
      });
   }

   let newUser = {
      id: admin.length + 1,
      firstName,
      lastName,
      email,
      password
   }

   admin.push(newUser);
   fs.writeFileSync('./admin.json', JSON.stringify(admin));

   res.redirect('/login');
});
0

Percebi outra coisa, quando tento usar o mesmo e-mail diz "Esse e-mail já está em uso." e tem apenas o "id" dentro do admin.json