Забыли назначить имена элементам формы. Типа, <input name="firstname" ....
Получать значения из формы надо внутри обработчика события submit, а не до его подключения (конечно, если вам нужны актуальные значения) - разместите строку const formData = new FormData(formElement); после e.preventDefault();.
Кстати, необязательно обращаться к переменной, ссылающейся на элемент формы, можно воспользоваться объектом события: const formData = new FormData(e.target);.
А если заменить стрелочную функцию на обычную, то можно и так делать: const formData = new FormData(this);.