-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
87 lines (79 loc) · 3.17 KB
/
app.js
File metadata and controls
87 lines (79 loc) · 3.17 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
78
79
80
81
82
83
84
85
86
87
var express = require('express'),
partials = require('express-partials'),
app = express(),
routes = require('./routes'),
errorHandlers = require('./middleware/errorhandlers'),
log = require('./middleware/log'),
cookieParser = require('cookie-parser'),
bodyParser = require('body-parser'),
csrf = require('csurf'),
session = require('express-session'),
RedisStore = require('connect-redis')(session),
mUtil = require('./middleware/utilities'),
flash = require('connect-flash'),
config = require('./config'),
io = require('./socket.io'),
passport = require('./passport'),
morgan = require('morgan');
app.set('view engine', 'ejs');
app.set('view options', {defaultLayout: 'layout'});
app.use(partials());
app.use(log.logger);
app.use(express.static(__dirname + '/static'));
app.use(express.static(__dirname + '/bower_components'));
app.use(cookieParser(config.secret));
app.use(session({
secret: config.secret,
saveUninitialized: true,
resave: true,
store: new RedisStore(
{url: config.redisUrl})
})
);
app.use(passport.passport.initialize());
app.use(passport.passport.session());
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
//app.use(csrf());
//app.use(mUtil.csrf);
app.use(mUtil.authenticated);
app.use(flash());
app.use(mUtil.templateRoutes);
//routes
app.get('/', routes.index);
app.get(config.routes.login, routes.login);
app.get(config.routes.logout, routes.logOut);
app.get(config.routes.register, routes.register);
app.post(config.routes.register, routes.registerProcess);
app.get(config.routes.chat, [mUtil.requireAuthentication], routes.chat);
app.get('/error', function(req, res, next){
next(new Error('A contrived error'));
});
passport.routes(app); //함수는 앱으로 실행되고, 이 앱은 익스프레스 서버 오브젝트. 익스프레스는 앱이 실행되면 두 페이스북 라우트(인증 절차)들을 알게 됨.
// var redis = require('redis');
// var client = redis.createClient(config.redisPort, config.redisHost);
// client.on("error", function (err) { console.log("redis client Error " + err); });
// app.use(function(req, res, next){
// req.cache = client; //routing전에 레디스 클라이언트를 req.cache로 저장해서 모든 라우터가 사용할수 있게 함
// next();
// });
app.use('/page', require('./routes/pageRouter'));// /page/xxx로 접속
//app.use('/board', [mUtil.checkPage], require('./routes/boardRouter'));// /board/xxx로 접속
app.use('/board', require('./routes/boardRouter'));// /board/xxx로 접속
app.use(require('./routes/migrationRouter')); //testing for PHP Server migration
app.use(require('./routes/univRouter'));
app.use(require('./routes/deptRouter'));
app.use(require('./routes/imageRouter')); //for image upload tests
app.use(require('./routes/friendRouter'));
app.use(require('./routes/commentRouter'));
app.use(require('./routes/userRouter'));
app.use(require('./routes/reportRouter'));
app.use(require('./routes/emailSendRouter'));
// app.use(require('./testRedis'));
app.use(errorHandlers.error);
app.use(errorHandlers.notFound);
var server = app.listen(config.port, function(){
console.log('Server listening at port %d', config.port);
});
io.startIo(server);