diff --git a/src/bin/www.js b/src/bin/www.js
index 0101581d..9cbba666 100644
--- a/src/bin/www.js
+++ b/src/bin/www.js
@@ -3,9 +3,10 @@ require('babel-polyfill');
var config = require("../config").default;
var db = require("../core/db");
-var app = require("../server").app;
+var server = require("../server").server;
db.init(config.db.uri)
.then(function () {
+ var app = server();
app.listen(config.port);
});
diff --git a/src/server.js b/src/server.js
index 9da02dd7..c500e500 100644
--- a/src/server.js
+++ b/src/server.js
@@ -1,6 +1,5 @@
import path from 'path';
import koa from 'koa';
-import route from 'koa-route';
import serve from 'koa-static';
import logger from 'koa-logger';
import conditional from 'koa-conditional-get';
@@ -11,53 +10,42 @@ import bodyParser from 'koa-bodyparser';
import config from './config';
import {redirectionTable} from './config';
-import {index, queryObject} from './routes';
+import {routes, queryObject} from './routes';
+import api from './routes/api';
import {redirect} from './routes/redirect';
-import sitemap from './routes/sitemap';
-import schedule from './routes/schedule';
-import news from './routes/news';
-import gallery from './routes/gallery';
-import error404 from './routes/404';
-import documents from './routes/documents';
-import teachers from './routes/teachers';
-import events from './routes/events';
-import articles from './routes/articles';
-
const dirPublic = path.join(__dirname, '../public');
const dirTemplates = path.join(__dirname, 'templates');
-export const app = koa();
-app.proxy = true;
+export function server(){
+ const app = koa();
+ app.proxy = true;
-app.use(bodyParser());
-app.use(logger());
-app.use(conditional());
-app.use(etag());
+ app.use(bodyParser());
+ app.use(logger());
+ api(app);
+ app.use(conditional());
+ app.use(etag());
+ app.use(prerenderRmFragment());
+ app.use(prerender(config.prerender));
+ app.use(serve(dirPublic));
+ app.use(serve(dirTemplates));
+ app.use(redirect(redirectionTable));
+ app.use(helmet());
+ app.use(queryObject());
+ routes(app);
+
+ return app;
+}
-app.use(function *(next) {
- yield* next;
+function prerenderRmFragment(){
+ return function *(next) {
+ yield* next;
- try {
- let xp = this.response.header['x-prerender'] == 'true';
- if (xp) this.body = this.body.replace('', '');
- } catch (e) {
+ try {
+ let xp = this.response.header['x-prerender'] == 'true';
+ if (xp) this.body = this.body.replace('', '');
+ } catch (e) {
+ }
}
-});
-app.use(prerender(config.prerender));
-app.use(serve(dirPublic));
-app.use(serve(dirTemplates));
-app.use(redirect(redirectionTable));
-app.use(helmet());
-app.use(queryObject());
-app.use(route.get('/', index()));
-
-sitemap(app);
-schedule(app);
-news(app);
-gallery(app);
-documents(app);
-events(app);
-articles(app);
-teachers(app);
-app.use(error404());
+}
\ No newline at end of file