exports.contact=function(req,res) {
if (req.method == "POST" && req.body.name && req.body.email && req.body.subject && req.body.message) {
var mailOptions = {
from: email@email1.com,
to: email.email2.com,
subject: "Subject",
text: "HELLO!"
};
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
res.render('landing.ejs', { message: "Message isn't send", level: "error" } );
winston.info("Contact email error for user " + req.body.email);
} else {
res.render('landing.ejs', { message: "Message is send", level: "success" } );
winston.info("Contact email success for user " + req.body.email);
}
});
} else {
res.render('landing.ejs', { message: "", level: "success" }); // OPEN INDEX
winston.info("Redirect to landing page after contact form");
}
};
If I use Chrome and send the email, the error returns Cannot POST /customers
(customers is the name of the page) in a blank page but the email is sent, then if I reload the page and try again, it works correctly without error. While on other browsers it just doesn't work and only returns the error Cannot POST /customers
in a blank page. Can anyone help me to prevent the error from returning to me?
This is my app.js:
let express = require('express');
let session = require('express-session');
let app = express();
let http = require('http');
let path = require('path');
let dotenv = require('dotenv').config();
let bodyParser=require("body-parser");
let winston = require('./helpers/winston'); // Log module
let fileUpload = require('express-fileupload'); // Upload file module
//var methodOverride = require('method-override');
global.site = process.env.SITE_URL;
global.site_qrcode = process.env.SITE_QRCODE;
let routes = require('./routes');
let user = require('./routes/user');
let dbConfig = require('./db/dbConfig');
var mysql = require('mysql');
var connection = mysql.createConnection({
host : dbConfig.host,
port : dbConfig.port,
user : dbConfig.user,
password : dbConfig.password,
database : dbConfig.database,
});
connection.connect();
global.db = connection;
winston.info("Database listen on port " + dbConfig.port);
let server_port = process.env.SERVER_PORT || 8080;
app.set('port', server_port);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: {
maxAge: 600000,
}
}));