Я работаю над node.js веб-сайтом, который мы используем в Heroku. Но у меня есть проблема. Всякий раз, когда я отправляю форму с веб-сайта, он прекрасно перенаправляется, но вместо того, чтобы показывать указанный файл, он показывает только «Внутренняя ошибка сервера». Но всякий раз, когда я помещаю "/ contact" в URL после моего домена, он работает совершенно нормально. Кто-нибудь знает, в чем проблема? Большое спасибо.
Индекс. js файл (файл node js и основной файл js):
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
var stripe = require("stripe")("sk_test_bOSMKplPuyuTYFN6somV2Ywf00be7BKbS7");
var hbs = require("hbs");
var bodyParser = require("body-parser");
var app = express();
app.use(express.static(path.join(__dirname, 'public')))
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'hbs')
app.get('/', (req, res) => res.render('pages/index'))
app.get('/banner', (req, res) => res.render('pages/banner'))
email = '';
message = '';
subject = '';
app.post('/contact', (req, res) => {
if(req.body.email != null){
email = req.body.email;
}
if(req.body.subject != null){
subject = req.body.subject;
}
if(req.body.message != null){
message = req.body.message;
}
if(email != '' && message != '' && subject != ''){
sendEmailToBusinessContact(email, subject, message);
res.redirect('/#contact')
}
});
Основной код html (index.hbs) :
<form action="/contact" method="post">
<div class="contact-input-container">
<div>
<input name="email" class="contact-input contact-email" type="email" placeholder="name@gmail.com" autocomplete="off" required>
</div>
<div>
<input name="subject" class="contact-input contact-subject" type="text" placeholder="subject.." autocomplete="off" required>
</div>
<div>
<textarea name="message" class="contact-input contact-message" type="text" placeholder="message.." required></textarea>
</div>
</div>
<button type="submit" class="contact-btn">Send</button>
</form>