Почему не срабатывает post запрос при отправки через nodemailer? При отправки выдаёт ошибку "POST
http://localhost:****/api/feedback 500 (Internal Server Error)", и указывает на строку "fetch('/api/feedback'"
node:
const express = require('express');
const path = require('path');
const port = process.env.PORT || 5000;
const publicPath = path.join(__dirname, './public');
const nodemailer = require('nodemailer');
const app = express();
app.use(express.static(publicPath));
app.use(express.json());
app.get("/", (req, res) => {
res.sendFile(publicPath);
})
app.post("/api/feedback", async(req, res) => {
try {
const { email, desc } = req.body;
const transporter = nodemailer.createTransport({
host: 'smtp.mail.ru',
port: 465,
secure: true,
auth: {
user: 'test@mail.ru',
pass: 'test',
},
})
await transporter.sendMail({
from: 'test@mail.ru',
to: 'test@mail.ru',
subject: 'Test',
text: `${email} ${desc}`,
})
} catch(err) {
console.log(err);
return res.status(500).send({
status: 500,
message: 'Cant post'
})
}
})
app.listen(port, () => console.log(`Listening on port http://localhost:${port}`))
client:
const form = document.querySelector('.form');
function sendFeedback(feedback) {
fetch("/api/feedback", {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(feedback),
})
.then((response) => response.json())
.then((data) => {
console.log(data);
alert('Success fetch')
})
.catch((err) => {
console.log(err);
alert('Error fetch');
})
}
form.addEventListener('submit', (event) => {
event.preventDefault();
const feedbackData = new FormData(event.target);
const feedback = Object.fromEntries(feedbackData);
console.log('feedback:', feedback);
sendFeedback(feedback);
})
Дебагер указывает, что ошибка находится в функции sendFeedback fetch(
'/api/feedback'). В консоле node пишет, что 'self-signed certificate in certificate chain'. Подскажите, пожалуйста, как исправить эту ошибку?