Как я могу перенаправить пользователей на домашнюю страницу после отправки электронной почты? - PullRequest
0 голосов
/ 28 октября 2018

Я использую nodemailer и Google reCaptcha для отправки контактной формы.Форма отправляется и электронное письмо отправляется, но затем файл url / ejs страницы контакта зависает и не перенаправляется обратно на домашнюю страницу.Я не получаю никаких сообщений об ошибках в консоли, и стек переходит в console.log («Успешно отправлено письмо»).Вот вывод консоли:

improviser14:~/workspace $ node app.js
Successfully sent mail

Кажется, проблема связана с этим блоком кода, а именно со строкой внутри **:

smtpTransport.sendMail(mailOptions, function(err, info){
          if(err) {
            console.log(err);
            req.flash("error", "Something went wrong... Please try again later!");
            res.redirect("/contact");
          } else {
            console.log("Successfully sent mail");
            req.flash("success", "Your email has been sent, we will respond within 24 hours.");
            *res.redirect("/");*
          }
        });
    });

Вот код точки входа дляссылка:

  var express = require('express'),
    app     = express(),
    serveStatic = require('serve-static'),
    bodyParser = require('body-parser'),
    express    = require("express"),
    flash      = require("connect-flash"),
    nodemailer = require("nodemailer"),
    request    = require("request"),
    router     = express.Router(),
    contactRoutes = require("./routes/contact");

app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

app.set('view engine', 'ejs');

app.use(express.static('public/'));

app.get('/', function(req, res){
    res.render('home');
});

app.get('/contact', function(req, res){
    res.render('contactMe');
});

app.use("/contact", contactRoutes);

app.listen(process.env.PORT, process.env.IP);

Заранее благодарим за любую помощь.

ОБНОВЛЕНИЕ: закомментирование следующей строки работает.Теперь я пытаюсь выяснить, почему req.flash не работает.

req.flash("success", "Your email has been sent, we will respond within 24 hours.");
...