Это очень странная проблема, но я не знаю, что не так с моим приложением. Я не вносил никаких изменений, но по какой-то причине приложение перестало отправлять электронные письма и показывает POST error: cannot find route api/example
У меня есть компонент React, в котором есть поле электронной почты и кнопка. При нажатии кнопка вызывает функцию:
sendMail() {
if (this.state.currentEmail !== "") {
let lastAtPos = this.state.currentEmail.lastIndexOf("@");
let lastDotPos = this.state.currentEmail.lastIndexOf(".");
if (
!(
lastAtPos < lastDotPos &&
lastAtPos > 0 &&
this.state.currentEmail.indexOf("@@") === -1 &&
lastDotPos > 2 &&
this.state.currentEmail.length - lastDotPos > 2
)
) {
this.setState({ error: "Please, provide your real e-mail address!" });
} else {
this.setState({
sending: true,
buttonText: ""
});
let data = {
email: this.state.currentEmail
};
axios
.post("/api/subscribers", data)
.then(res => {
this.setState({ isSent: true }, this.resetForm());
})
.catch(() => {
console.log("Message not sent");
});
}
}
}
Маршрут ExpressJS:
router.post("/", (req, res) => {
let data = req.body;
let smtpTransport = nodemailer.createTransport({
service: "Zoho",
port: 465,
auth: {
user: creds.USER,
pass: creds.PASS
}
});
let mailOptions = {
from: "EMAIL",
to: "EMAIL",
subject: "New user subscribed via DOMAIN",
html: `<p>${data.email}</p>`
};
smtpTransport.sendMail(mailOptions, (error, response) => {
if (error) {
res.send(error);
console.log(error);
} else {
res.send("Success");
}
smtpTransport.close();
});
const msg = {
to: data.email,
from: "DOMAIN <EMAIL>",
templateId: "TEMPLATE ID",
subject: "TEXT",
text: "TEXT"
};
//Send Email
try {
sgMail.send(msg);
} catch (err) {
console.log(err);
}
});
Как я уже говорил, это нормально работало неделю назад, пока я не начал замечать, что электронные письма не отправляются. Я отладил, и все, что я получаю, это ошибка "Message not sent"
от клиента и ошибка маршрута POST error cannot find api/example
(и фрагмент кода HTML).
Что не так с кодом?