Я работаю над сайтом, где я использую heroku для размещения моего node js файла, но у меня проблема. Когда я отправляю форму методом post, я получаю сообщение об ошибке; "Внутренняя Ошибка Сервера". Но когда я перезагружаю страницу, она работает хорошо. URL-адрес сайта: https://deluxedesigns.herokuapp.com/ (go до контактной формы)
html код;
<h1>Contact</h1>
<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>
Node js код;
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')
}
});
Heroku регистрирует ответ метода записи контакта:
2020-04-17T15:39:04.169771+00:00 heroku[router]: at=info method=POST path="/contact" host=deluxedesigns.herokuapp.com request_id=2a1ec6dc-d6ba-43d5-9a08-e26095df2d24 fwd="85.30.29.244" dyno=web.1 connect=0ms service=2ms status=404 bytes=391 protocol=https
Весь вывод распределяется на коде (внутри кода html (хотя это не код html)) https://codepen.io/Pilhamre/pen/ExVKrdm
Другие журналы, которые могут повлиять на ошибку:
2020-04-17T15:22:09.635383+00:00 app[web.1]: TypeError: Cannot read property 'payment_email' of undefined
2020-04-17T15:22:09.635408+00:00 app[web.1]: at /app/index.js:231:27
2020-04-17T15:22:09.635409+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2020-04-17T15:22:09.635410+00:00 app[web.1]: at next (/app/node_modules/express/lib/router/route.js:137:13)
2020-04-17T15:22:09.635411+00:00 app[web.1]: at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
2020-04-17T15:22:09.635411+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2020-04-17T15:22:09.635412+00:00 app[web.1]: at /app/node_modules/express/lib/router/index.js:281:22
2020-04-17T15:22:09.635412+00:00 app[web.1]: at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)
2020-04-17T15:22:09.635412+00:00 app[web.1]: at next (/app/node_modules/express/lib/router/index.js:275:10)
2020-04-17T15:22:09.635413+00:00 app[web.1]: at serveStatic (/app/node_modules/serve-static/index.js:75:16)
2020-04-17T15:22:09.635414+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2020-04-17T09:18:06.953219+00:00 app[web.1]: at next (/app/node_modules/express/lib/router/index.js:275:10)
2020-04-17T09:18:06.953219+00:00 app[web.1]: at serveStatic (/app/node_modules/serve-static/index.js:75:16)
2020-04-17T09:18:06.953220+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
Остальная часть вывода журналов heroku - это просто heroku, получающий изображения.