67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
var path = require("path");
|
|
|
|
var koa = require("koa.io");
|
|
var route = require("koa-route");
|
|
var serve = require("koa-static");
|
|
var logger = require("koa-logger");
|
|
var conditional = require("koa-conditional-get");
|
|
var etag = require("koa-etag");
|
|
var prerender = require("koa-prerender");
|
|
var helmet = require("koa-helmet");
|
|
var bodyParser = require("koa-bodyparser");
|
|
|
|
var config = require("./config");
|
|
var routes = require("./routes");
|
|
|
|
var app = koa();
|
|
app.proxy = true;
|
|
|
|
app.use(bodyParser());
|
|
app.use(logger());
|
|
app.use(conditional());
|
|
app.use(etag());
|
|
app.use(prerender(config.prerender));
|
|
|
|
app.use(serve(path.join(__dirname, "public")));
|
|
app.use(serve(path.join(__dirname, "templates")));
|
|
|
|
app.use(helmet.defaults());
|
|
|
|
app.use(function *(next) {
|
|
var q = this.query;
|
|
this.query = Object.keys(q)
|
|
.reduce(function (q, key) {
|
|
var v = q[key];
|
|
if (v === "true") {
|
|
v = true;
|
|
} else if (v === "false") {
|
|
v = false;
|
|
}
|
|
q[key] = v;
|
|
return q;
|
|
}, q);
|
|
|
|
yield next;
|
|
});
|
|
|
|
app.use(route.get("/", routes.index()));
|
|
app.use(route.get("/team", routes.index()));
|
|
app.use(route.get("/docs", routes.index()));
|
|
|
|
app.use(route.get("/document/:doc", routes.index(
|
|
path.join(__dirname, "templates/document.html")
|
|
)));
|
|
|
|
require("./routes/schedule")(app);
|
|
require("./routes/news")(app);
|
|
require("./routes/gallery")(app);
|
|
|
|
require("./instagram/router")(app);
|
|
require("./instagram/io")(app);
|
|
|
|
require("./routes/404")(app);
|
|
|
|
module.exports = function (port) {
|
|
return app;
|
|
};
|