From cc14b51fbb6367b4cf9fad55409fe52c3870f190 Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Sun, 1 Mar 2015 09:04:25 +0300 Subject: [PATCH] stability fixes; speed improvements; --- client/app.js | 1 + package.json | 2 ++ server.js | 22 ++++++++++++++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/client/app.js b/client/app.js index 60d5545f..af45ee89 100644 --- a/client/app.js +++ b/client/app.js @@ -10,6 +10,7 @@ var app = angular.module("hudozhka", [ ]); app.config(function ($locationProvider, $routeProvider) { + $locationProvider.hashPrefix("!"); $locationProvider.html5Mode(true); var routes = [ diff --git a/package.json b/package.json index 1021b939..9f5d359e 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,8 @@ "dependencies": { "instagram-node": "^0.5.1", "koa": "^0.18.0", + "koa-conditional-get": "^1.0.2", + "koa-etag": "^2.0.0", "koa-logger": "^1.2.2", "koa-prerender": "^1.0.3", "koa-route": "^2.4.0", diff --git a/server.js b/server.js index 31b6c572..c2975200 100644 --- a/server.js +++ b/server.js @@ -4,14 +4,17 @@ var koa = require("koa"); var route = require("koa-route"); var serve = require("koa-static"); var logger = require("koa-logger"); -var prerender = require('koa-prerender'); +var conditional = require("koa-conditional-get"); +var etag = require("koa-etag"); +var prerender = require("koa-prerender"); var config = require("./config"); var routes = require("./routes"); var app = koa(); app.use(logger()); - +app.use(conditional()); +app.use(etag()); app.use(prerender(config.prerender)); app.use(serve(path.join(__dirname, "public"))); @@ -45,6 +48,21 @@ app.use(route.get("/document/:doc", routes.index( require("./routes/schedule")(app); require("./routes/news")(app); +if (process.env["NODE_ENV"] === "development") { + app.use(route.get("/debug", function *() { + var out = {}; + out.ip = this.ip; + out.host = this.host; + out.headers = this.headers; + out.protocol = this.protocol; + out.query = this.query; + out.url = this.url; + + this.type = "application/json"; + this.body = out; + })); +} + module.exports = function (port) { app.listen(port); };