Получение данных из экспресс-запроса POST - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь попытаться сохранить данные console.log, которые я отправляю на мой сервер с помощью запроса POST.Вот код:

Front End:

    onFormSubmit = (e) => {
    e.preventDefault();
    if (!this.state.name || !this.state.email || !this.state.message) {
        this.setState(() => ({ error: 'Please fill out all the above fields!' }));
    } else {
        this.setState(() => ({ error: '' }));

        fetch('/contact', {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({
                name: this.state.name,
                email: this.state.email,
                message: this.state.message
            })
        })
            .then((res) => res.json())
            .then((response) => console.log('Success:', JSON.stringify(response)))
            .catch((error) => console.error('Error:', error));
    }

}

Back-End

app.post('/contact', (req, res) => {
   console.log(req.body);
   sgMail.setApiKey(process.env.SENDGRID_API_KEY);
   const msg = {
      to: 'email',
      from: 'email',
      subject: 'New Message From Portfolio',
      text: 'test',
      html: '<strong>and easy to do anywhere, even with 
              Node.js</strong>',
   };
   sgMail.send(msg)
   .then(() => {
     console.log("email send successful");
   })
})

Я использую sendGrid для отправки электронного письма.Код sendGrid выполнен успешно, так как я получаю электронное письмо.Я подумал, поместив его в JSON-форму в запросе на выборку, чтобы он был в форме, которую мог распознать мой сервер.Но моя логика в этом может быть неправильной.В файле console.log на стороне сервера я получаю "undefined".

...