-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.ts
136 lines (64 loc) · 2.47 KB
/
app.ts
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// modules to help developing
import chalk from 'chalk'; // chalk makes colorful console.logs only to make our development easier
if(process.env.NODE_ENV !== 'production'){
// if we are on developemnt, load the development variables
require('dotenv').config();
}
// core modules
import express, { Request, Response, NextFunction } from 'express';
import path from 'path'
import passport from 'passport';
import cookieSession from 'cookie-session';
// ----------------------------------FIRING EXPRESS APP
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, `client/build`)));
// -------------------------COOKIE AND PASSPORT
app.use(cookieSession({
maxAge: 24*60*60*1000,
keys: [`orehasaikyounizettainaru`],
}));
app.use(passport.initialize());
app.use(passport.session());
/* -----------------------------------------
. config
----------------------------------------- */
import './config/mongodbConfig'
import './config/passportConfig'
/* -----------------------------------------
. routes
----------------------------------------- */
// auth routes
import oauthRoute from './routes/authRoutes/oauthRoute';
app.use(oauthRoute);
import authRoute from './routes/authRoutes/authRoute';
app.use(authRoute);
import userRoute from './routes/authRoutes/userRoute';
app.use('/user', userRoute);
// mail routes
import contactRoute from './routes/mailRoutes/ContactRoute'
app.use(contactRoute);
import resetPasswordRoute from './routes/mailRoutes/ResetPasswordRoute'
app.use(resetPasswordRoute);
import verifyEmailRoute from './routes/mailRoutes/VerifyEmailRoute'
app.use(verifyEmailRoute);
// MAIN routes
import dnsRoute from './routes/DnsRoute';
app.use(dnsRoute);
// CATCH-ALL HANDLER
app.get('*', (req: Request, res: Response, next: NextFunction)=>{
res.sendFile(path.join(__dirname, 'client/build/index.html'));
})
// ERRORS HANDLER
app.use((errorObjectWithRequestAndResponse: {err: any, req: Request, res: Response})=>{
const {err, req, res} = errorObjectWithRequestAndResponse;
console.log(chalk.red(err.message));
console.log(err);
res.json({ msg: 'Server Error!', error: err.message });
})
// -----------------------------------------LISTEN
const PORT = process.env.PORT || 5000;
app.listen(PORT, ()=>{
console.log(`Server is running on port ${ PORT }`);
})