// server.js
// 把所需的模組載入
var express  = require('express');
var app      = express();
var port     = process.env.PORT || 8080;
var mongoose = require('mongoose');
var passport = require('passport');
var flash    = require('connect-flash');
var morgan       = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser   = require('body-parser');
var session      = require('express-session');

// 設定 ===============================================================
var configDB = require('./config/database.js');
mongoose.connect(configDB.url); 
require('./config/passport')(passport); 

// 套入 express 的應用程式
app.use(morgan('dev')); 		// 把每個請求都顯示在 console
app.use(cookieParser()); 		// 認證需要用到
app.use(bodyParser()); 			// 讀取 html 表格的資料(POST...etc)
app.set('view engine', 'ejs'); 	// 設定 ejs 為套用模版的引擎

// 啟用 passport
app.use(session({ secret: 'blablablablablablablablablablabla' })); 	// session 的加密密鑰
app.use(passport.initialize()); 
app.use(passport.session()); 										// 紀錄 session
app.use(flash()); 													// 回饋訊息處理

// 路由 ======================================================================
require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport

// 啟動server ======================================================================
app.listen(port);
console.log('Listening on port ' + port);