-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
77 lines (65 loc) · 1.79 KB
/
Copy pathapp.js
File metadata and controls
77 lines (65 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
const express = require('express');
const exphbs = require('express-handlebars');
const flash = require('connect-flash');
const session = require('express-session');
const email = require('./helpers/email');
const app = express();
const PORT = process.env.PORT || 3000;
// MIDDLEWARE
app.use(express.json({ extended: false }));
app.use(express.urlencoded({ extended: false }));
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
//Express session
app.use(
session({
secret: 'secret',
resave: true,
saveUninitialized: true
})
);
//Connect flash
app.use(flash());
//Global Varialbes - MIDDLEWARE
app.use(function(req, res, next) {
res.locals.success_msg = req.flash('success_msg');
res.locals.error_msg = req.flash('error_msg');
// call next piece of middleware
next();
});
// STATIC FILES
app.use('/public', express.static('public'));
// HOME PAGE
app.get('/', (req, res) => {
res.render('index');
});
app.post('/send-email', (req, res) => {
if (!email.getProfile()) {
res.redirect('/auth/gmail');
} else {
const transporter = email.getTransporter();
const profile = email.getProfile();
transporter.sendMail(
{
from: profile.email,
to: req.body.to,
subject: req.body.subject,
text: req.body.message
},
(err, info) => {
if (err) {
req.flash('error_msg', "Email hasn't been set due to an error");
res.redirect('/');
} else {
req.flash('success_msg', `Email sent to ${req.body.to}`);
res.redirect('/');
}
}
);
}
});
// AUTHENTICATION ROUTE
app.use('/auth', require('./routes/auth'));
app.use('/settings', require('./routes/settings'));
// INITIATE SERVER
app.listen(PORT, () => console.log(`Server started on Port ${PORT}`));