Модуль .env не найден в HerokuJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Модуль .env не найден в Heroku

Сообщение Anonymous »

Я пытаюсь создать серверный сервер для информационного бюллетеня для простого веб-сайта, который я создаю. Однако сервер у меня запущен и работает, но когда я пытаюсь протестировать конечную точку, он дает сбой.
Когда я пытаюсь протестировать конечную точку 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



Вот код, который я написал в своем файле server.js:

Код: Выделить всё

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}`);
});
В моем файле package.json также показано, что модуль присутствует, но я все равно получаю ошибку приложения, показанную во фрагменте html выше, а также проверяю журналы Heroku и получаю ошибку сообщение «Ошибка: невозможно найти модуль «dotenv».

Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-heroku
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»