Не удается ОПУБЛИКОВАТЬ / связаться — но нигде в моем коде я не запрашиваю это сообщение

#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) {...});