#javascript #node.js #express #ejs #nodemailer
#javascript #node.js #выразить #ejs #nodemailer
Вопрос:
Я пытаюсь создать поле контакта с помощью nodemailer, и сначала все работало. Я утешаю.зарегистрирован (ошибка) или «успех» и получил электронное письмо, куда оно должно было отправляться, а также получил сообщение «успех» моей консоли. Однако, когда я отправляю физическое сообщение «success», которое может видеть пользователь, я получаю сообщение об ошибке cannot POST / contact . Странно то, что у меня нет запроса post на /contact . Я некоторое время просматривал код, так что это может быть что-то простое, но я в недоумении. Я ценю любую помощь.
Я попытался отобразить домашнюю страницу, объявил переменную и поместил эту переменную на веб-страницу для отображения пользователю, затем я просто попытался отобразить домашнюю страницу и все еще получал ту же ошибку. * Я оставил некоторую важную информацию пустой, поскольку я делаю это в своей локальной системе, прежде чем отправлять ее в Heroku.
app.post('/', function(req, res) {
let mailOpts, smtpTrans;
smtpTrans = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: '',
pass: ''
}
});
mailOpts = {
from: req.body.name ' amp;<' req.body.email 'amp;>',
to: '',
subject: 'New message from contact form',
text: `${req.body.name} (${req.body.email} ${req.body.nbr}) says: ${req.body.msg}`
};
smtpTrans.sendMail(mailOpts, function (error, response) {
if (error) {
console.log(error);
} else {
res.render('/');
}
});
});
Комментарии:
1. res.render(‘/’) неверно, аргумент для render() всегда является представлением, указанным абсолютным путем с именем и расширением или относительным, но AFAIK имя всегда должно быть указано
Ответ №1:
Изменить /
на /contact
:
app.post('/contact', function(req, res) {...});