69 lines
1.9 KiB
JavaScript
69 lines
1.9 KiB
JavaScript
var express = require('express');
|
|
var path = require('path');
|
|
var favicon = require('serve-favicon');
|
|
var morgan = require('morgan');
|
|
var cookieParser = require('cookie-parser');
|
|
var session = require('express-session');
|
|
var bodyParser = require('body-parser');
|
|
var route = require('./routes/index');
|
|
var blog = require('./routes/blog');
|
|
var misc = require('./routes/misc');
|
|
var auth = require('./routes/auth');
|
|
var admin = require('./routes/admin');
|
|
var ue = require('./routes/ue');
|
|
var logger = require('./utility/logger');
|
|
var passport = require('passport');
|
|
|
|
var app = express();
|
|
|
|
// view engine setup
|
|
app.set('views', path.join(__dirname, 'views'));
|
|
app.set('view engine', 'jade');
|
|
|
|
// uncomment after placing your favicon in /public
|
|
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
|
|
app.use(morgan('dev'));
|
|
app.use(bodyParser.json());
|
|
app.use(bodyParser.urlencoded({extended: false}));
|
|
app.use(cookieParser());
|
|
app.use(session({
|
|
secret: 'iblog-exp-session',
|
|
cookie: {
|
|
maxAge: 24 * 60 * 60 * 1000
|
|
},
|
|
resave: false,
|
|
saveUninitialized: false
|
|
}));
|
|
app.use(express.static(path.join(__dirname, 'public')));
|
|
|
|
app.use(passport.initialize());
|
|
app.use(passport.session());
|
|
|
|
app.use('/', route);
|
|
app.use('/blog', blog);
|
|
app.use('/', misc);
|
|
app.use('/', auth);
|
|
app.use('/admin', require('connect-ensure-login').ensureLoggedIn(), admin);
|
|
app.use('/ue/controller', ue);
|
|
|
|
// catch 404 and forward to error handler
|
|
app.use(function (req, res, next) {
|
|
var err = new Error();
|
|
err.status = 404;
|
|
next(err);
|
|
});
|
|
|
|
// error handlers
|
|
app.use(function (err, req, res, next) {
|
|
var code = err.status || 500,
|
|
message = code === 404 ? '请求的页面已失联~系统已自动记录该错误。' : '服务器出错了~系统已自动记录该错误。';
|
|
res.status(code);
|
|
logger.errLogger(req, err);
|
|
res.render('./shared/error', {
|
|
code: code,
|
|
message: message
|
|
});
|
|
});
|
|
|
|
module.exports = app;
|