var express = require('express');
var logger = require('morgan');
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var errorHandler = require('errorhandler');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var app = express();
app.set('port', 8888);
app.use(logger('dev'));
app.use(methodOverride());
app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(session({
    resave: false,
    saveUninitialized: false,
    secret: '12345',
    cookie: {
        maxAge: 1000 * 60 * 60 * 24, // default session expiration is set to 24 hour
    },
    name: 'send',
    rolling: false
}))
app.use('/', express.static(__dirname + '/public'));
app.use(function(req, res, next) {
    console.log('hostname:' + req.hostname)
    var allowOrigins = [
        'http://www.linyqiang.com',
        "http://localhost:3000",
        'http://192.168.1.101:3000'
    ];
    var origin = req.headers.origin;
    if (allowOrigins.indexOf(origin) > -1 || /(\b|.*\.)linyqiang.com$/.test(origin) === true) {
        res.setHeader('Access-Control-Allow-Origin', origin);
    } else {
        res.setHeader('Access-Control-Allow-Origin', '*');
    }
    res.header('Access-Control-Allow-Credentials', true);
    res.header('Access-Control-Allow-Methods', 'GET,PUT,DELET,POST');
    res.header('Access-Control-Allow-Headers', 'Content-Type,x-access-token,Access-Control-Allow-Headers, Authorization, X-Requested-With');
    next();
})
app.use(errorHandler());
process.on('uncaughtException', function(err) {
    console.log(err);
});
var server = app.listen(app.get('port'), function() {
    console.log('node 正在运行,端口:'+app.get('port'));
});