Конфигурация SendGrid с сервером React и Node / Express - PullRequest
0 голосов
/ 06 декабря 2018

Как видно из названия, я пытаюсь внедрить Sendgrid в свой реактивный проект.Я использую серверную часть узла с экспресс-сервером и реагирующим маршрутизатором на внешнем интерфейсе.Аналогичный вопрос был задан в другом потоке, но он не знал, усложнил ли процесс реактивный маршрутизатор.Вот мой код:

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
            })
        })
        .catch((error) => {
            console.error(error);
          });
    }

}

Back-end (настройка сервера)

const path = require('path');
const express = require('express');
const app = express();
const publicPath = path.join(__dirname, '../public');
const port = process.env.PORT || 8080;
const sgMail = require('@sendgrid/mail');

app.use(express.static(publicPath));

app.get('*', (req, res) => {
  res.sendFile(path.join(publicPath, 'index.html'));
});

app.post('/contact', (req, res) => {

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);
})

app.listen(port, () => {
 console.log('Server is running');
 });

Когда я запускаю этот код, я получаю 404 "/ контакт "не найден.Концептуально я думаю, что нахожусь в правильном месте, но мне было любопытно, почему мой интерфейс не распознает этот маршрут.Я получаю информацию о маршруте / контакте и на моем сервере есть соответствующая экспресс-почта.

...