-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
143 lines (117 loc) · 4.23 KB
/
index.js
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
137
138
139
140
141
142
143
//setting up express server
//Frame Your Social Space.
const express= require('express');
const env= require('./config/environment');
const logger= require('morgan');
const cookieParser= require('cookie-parser');
const app= express();
//to make helper available as locals to access them
require('./config/view-helpers')(app);
const port= 8000;
const expressLayouts= require('express-ejs-layouts');
const db = require('./config/mongoose');
//used for session cookie
const session= require('express-session');
const passport= require('passport');
const passportLocal= require('./config/passport-local-strategy');
const passportGoogle= require('./config/passport-google-oauth2-strategy');
//here we use mongo store to store session cookie b'coz don't want to remove session cookie at every server restart ;)
const MongoStore= require('connect-mongo')(session);
const sassMiddleware= require('node-sass-middleware');
//for flash notification
const flash= require('connect-flash');
const customMware= require('./config/middleware');
//setup the chat server to be used with socket.io
// const chatServer= require('http').Server(app);
// const chatSockets= require('./config/chat_sockets').chatSockets(chatServer);
// chatServer.listen(5000);
// console.log("chat server is listening on port 5000");
// for mosca setup
// const mosca = require('mosca')
// const broker = new mosca.Server(1883) // running it on port 1883
// broker.on('ready', ()=>{
// console.log('Broker is ready! and running on port ' + '1883')
// })
// // fired when a message is received
// broker.on('published', function(packet, client) {
// console.log('message from server == Published : ', packet.payload);
// });
// // fired when a client subscribes to a topic
// broker.on('subscribed', function(topic, client) {
// console.log('message from server == subscribed : ', topic);
// });
// // fired when a client subscribes to a topic
// broker.on('unsubscribed', function(topic, client) {
// console.log('message from server == unsubscribed : ', topic);
// });
// // fired when a client is disconnecting
// broker.on('clientDisconnecting', function(client) {
// console.log('message from server == clientDisconnecting : ', client.id);
// });
// // fired when a client is disconnected
// broker.on('clientDisconnected', function(client) {
// console.log('message from server == clientDisconnected : ', client.id);
// });
// end mosca setup
const path= require('path');
if(env.name=='development'){
app.use(sassMiddleware({
src : path.join(__dirname,env.asset_path,'scss'),
dest : path.join(__dirname,env.asset_path,'css'),
debug : true,
outputStyle :'extended',
prefix : '/css'
}));
}
//express functions
app.use(express.urlencoded({
extended: false
}));
app.use(cookieParser());
app.use(express.static(env.asset_path));
//make the uploads path available to the browser
app.use('/uploads',express.static(__dirname + '/uploads'));
app.use(logger(env.morgan.mode, env.morgan.options));
app.use(expressLayouts);
//extract scripts and styles from subpages to the layout
app.set('layout extractStyles',true);
app.set('layout extractScripts',true);
//set up view engine
app.set("view engine","ejs");
app.set("views","./views");
//mongo store is used to store the session cookie in the db
app.use(session({
name:'sumitwa',
//to change the secret before deployment in production mode
secret:env.session_cookie_key,
saveUninitialized: false,
resave: false,
cookie :{
maxAge :(1000 * 60 * 100)
},
store : new MongoStore(
{
mongooseConnection : db,
autoRemove : 'disabled'
},
function(err){
console.log(err || 'connect-mongodb setup ok' );
}
)
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(passport.setAuthenticatedUser);
//using flash services and put it after the sessions because it uses session cookies
app.use(flash());
app.use(customMware.setFlash);
//use express router
app.use('/',require("./routes/index.js"));
//setting up server
app.listen(port,function(err){
if(err){
console.log('something wrong in starting server !!!');
return;
}
return console.log("server is up and running on port ",port);
});