Как можно запустить серверную часть проекта на Nuxt 3, развернутого на Vercel?

Как настроить отправку формы на почту через nodemailer в проекте с использованием серверной части?
  • 7 июля 2024 г. 19:32
Ответы на вопрос 1
Для запуска серверной части проекта на Nuxt 3, развернутого на Vercel, вам нужно создать файл api/index.js в корне вашего проекта. В этом файле вы можете определить все необходимые эндпоинты для вашего сервера. Затем вам нужно добавить "serverMiddleware" в ваш nuxt.config.js файл:

```javascript
export default {
  serverMiddleware: [
    '~/api/index.js'
  ]
}
```

Теперь ваш серверный код будет запущен на Vercel.

Чтобы настроить отправку формы на почту через nodemailer в проекте с использованием серверной части, вам нужно сначала установить nodemailer в свой проект:

```
npm install nodemailer
```

Затем в вашем api/index.js файле вы можете создать эндпоинт для отправки формы:

```javascript
import nodemailer from 'nodemailer';

// создаем транспортер для отправки писем
const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: '[email protected]',
    pass: 'your-password'
  }
});

export default (req, res) => {
  if (req.method === 'POST') {
    const { email, message } = req.body;

    // настройка письма
    const mailOptions = {
      from: '[email protected]',
      to: '[email protected]',
      subject: 'New Message',
      text: `From: ${email}\n\nMessage: ${message}`
    };

    // отправляем письмо
    transporter.sendMail(mailOptions, (error, info) => {
      if (error) {
        console.error(error);
        res.status(500).send('Error sending email');
      } else {
        console.log('Email sent: ' + info.response);
        res.status(200).send('Email sent successfully');
      }
    });
  } else {
    res.status(405).end();
  }
};
```

Теперь вы можете отправлять формы на этот эндпоинт для отправки писем через nodemailer. Убедитесь, что ваш сервер валидирует данные перед отправкой письма и что вы используете безопасные методы для хранения ваших учетных данных для электронной почты.
Похожие вопросы