Когда я пытаюсь протестировать конечную точку API с помощью POST с использованием Curl, я получаю следующее:< /p>
Код: Выделить всё
Application Error
html,body,iframe {
margin: 0;
padding: 0;
}
html,body {
height: 100%;
overflow: hidden;
}
iframe {
width: 100%;
height: 100%;
border: 0;
}
//www.herokucdn.com/error-pages/application-error.html
Код: Выделить всё
require('dotenv').config();
const express = require('express');
const nodemailer = require('nodemailer');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
const PORT = process.env.PORT || 3000;
// Middleware
app.use(bodyParser.json());
app.use(cors());
app.use(express.static('public'));
// Environment variables
const EMAIL_USER = process.env.EMAIL_USER;
const EMAIL_PASS = process.env.EMAIL_PASS;
console.log('EMAIL_USER:', EMAIL_USER);
console.log('EMAIL_PASS:', EMAIL_PASS);
if (!EMAIL_USER || !EMAIL_PASS) {
console.error('EMAIL_USER and EMAIL_PASS must be set');
process.exit(1);
}
// Route to handle newsletter signups
app.post('/newsletter', (req, res) => {
const { email } = req.body;
if (!email) {
return res.status(400).send('Email is required');
}
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: EMAIL_USER,
pass: EMAIL_PASS,
},
});
const mailOptions = {
from: EMAIL_USER,
to: EMAIL_USER,
subject: 'New Newsletter Signup',
text: `A new user has signed up for the newsletter: ${email}`,
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.error('Error sending email:', error);
return res.status(500).send(error.toString());
}
res.status(200).send('Email sent: ' + info.response);
});
});
// Start server
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-heroku
Мобильная версия