У меня проблемы с развертыванием моего приложения (впервые для NodeJS), все хорошо работает на моей машине, но я получаю ошибку от heroku при попытке войти в приложение
Невозможно получить /
Моя единственная логика BE c подключена к форме в моем контакте. js компонент Я пытался найти различные решения, но, похоже, ничего не работает ..
Структура папок
reactapp (FE folder)
..build
..index.html
..src
..components
..pages
..Contact
..Contact.js
node_modules
.env
.gitignore
Index.js
package.json
Procfile
Контакт. js (logi c)
async handleSubmit(e) {
e.preventDefault();
this.setState({ name: "", email: "", message: "", isClicked: true });
setTimeout(() => {
this.setState({ isClicked: false });
}, 1000);
document.querySelector(".form").reset();
const { name, message, email } = this.state;
const form = await axios.post("/api/form", {
name,
email,
message
});
}
Индекс. js (BE)
require("dotenv").config();
const express = require("express");
const bodyParser = require("body-parser");
const nodemailer = require("nodemailer");
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post("/api/form", (req, res) => {
nodemailer.createTestAccount((err, account) => {
const htmlEmail = `
<h3>####</h3>
<ul>
<li>###: ${req.body.name}</li>
<li>Email: ${req.body.email}</li>
</ul>
<h3>####</h3>
<p>${req.body.message}</p>
`;
let transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: process.env.EMAIL,
pass: process.env.PASSWORD
}
});
let mailOptions = {
to: "#######@gmail.com",
replyTo: req.body.email,
subject: "######",
text: req.body.message,
html: htmlEmail
};
transporter.sendMail(mailOptions, (err, info) => {
if (err) {
return console.log(err);
} else {
console.log("Message sent: %s", info.message);
console.log("Message URL: %s", nodemailer.getTestMessageUrl(info));
}
});
});
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`server is listening on port ${PORT}`);
});
пакет. json
{
"name": "reactapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js",
"server": "nodemon index.js",
"client": "npm start start --prefix reactapp",
"dev": "concurrently \"npm run server\" \"npm run client\""
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"concurrently": "^5.0.2",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"nodemailer": "^6.4.2",
"nodemailer-mailgun-transport": "^2.0.0",
"nodemon": "^2.0.2"
}
}