diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 00000000..a5788cd6 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory" : "public/bower_components" +} diff --git a/api/feed.js b/api/feed.js index ea8edc29..e5e8dad3 100644 --- a/api/feed.js +++ b/api/feed.js @@ -2,21 +2,11 @@ * Created by tmshv on 22/11/14. */ -var Router = require("express").Router; +var route = require("koa-route"); var db = require("../core/db"); module.exports = function (app) { - var router; - router = new Router(); - router.route("/api/feed") - .get(function (req, res) { - db.c("posts").find().toArray() - .catch(function(e){ - res.error(e); - }) - .then(function (docs) { - res.json(docs); - }); - }); - app.use(router); + app.use(route.get("/api/feed", function *(){ + this.body = yield db.c("posts").find().toArray(); + })); }; \ No newline at end of file diff --git a/core/db.js b/core/db.js index 11a2b327..cae7a422 100644 --- a/core/db.js +++ b/core/db.js @@ -2,7 +2,6 @@ * Created by tmshv on 22/11/14. */ -var Promise = require("promise"); var mongo = require("promised-mongo"); var ObjectId = mongo.ObjectId; diff --git a/package.json b/package.json index 7d949dee..e83be655 100644 --- a/package.json +++ b/package.json @@ -14,14 +14,13 @@ "author": "Roman Timashev", "license": "ISC", "dependencies": { - "body-parser": "^1.9.3", "bower": "^1.3.12", - "cookie-parser": "^1.3.3", - "express": "^4.10.1", "instagram-node": "^0.5.1", - "method-override": "^2.3.0", - "morgan": "^1.5.0", - "promise": "^6.0.1", + "koa": "^0.18.0", + "koa-logger": "^1.2.2", + "koa-route": "^2.4.0", + "koa-static": "^1.4.9", + "mz": "^1.3.0", "promised-mongo": "^0.11.1" }, "devDependencies": { diff --git a/server.js b/server.js index e9d4c66c..42599959 100644 --- a/server.js +++ b/server.js @@ -1,45 +1,37 @@ -var express = require("express"); var path = require("path"); +var fs = require("mz/fs"); -var Promise = require("promise"); -var methodOverride = require("method-override"); -var logger = require("morgan"); -var cookieParser = require("cookie-parser"); -var bodyParser = require("body-parser"); +var koa = require("koa"); +var route = require("koa-route"); +var serve = require("koa-static"); +var logger = require("koa-logger"); -var app = express(); -app.use("/bower_components", express.static(path.join(__dirname, "bower_components"))); -app.use("/views", express.static(path.join(__dirname, "views"))); -app.use(express.static(path.join(__dirname, "public"))); +var app = koa(); +app.use(logger()); -app.use(logger("dev")); -app.use(cookieParser()); -app.use(bodyParser.json()); -app.use(bodyParser.urlencoded({extended: true})); -app.use(methodOverride()); +app.use(serve(path.join(__dirname, "public"))); +app.use(serve(path.join(__dirname, "templates"))); + +app.use(route.get("/", index)); +app.use(route.get("/schedule", index)); +app.use(route.get("/team", index)); +app.use(route.get("/docs", index)); + +app.use(route.get("/document/:doc", document)); + +function *index(){ + var fn = path.join(__dirname, "templates/index.html"); + this.type = "text/html"; + this.body = fs.createReadStream(fn); +} + +function *document(){ + var fn = path.join(__dirname, "templates/document.html"); + this.type = "text/html"; + this.body = fs.createReadStream(fn); +} require("./api/feed")(app); -require("./routers/instagram")(app); - -app.get("/document/*", function (req, res) { - res.sendFile(path.join(__dirname, "views/document.html")); -}); - -app.get("/", function (req, res) { - res.sendFile(path.join(__dirname, "views/index.html")); -}); - -app.get("/schedule", function (req, res) { - res.sendFile(path.join(__dirname, "views/index.html")); -}); - -app.get("/team", function (req, res) { - res.sendFile(path.join(__dirname, "views/index.html")); -}); - -app.get("/docs", function (req, res) { - res.sendFile(path.join(__dirname, "views/index.html")); -}); module.exports = function (port) { app.listen(port); diff --git a/views/document.html b/templates/document.html similarity index 100% rename from views/document.html rename to templates/document.html diff --git a/views/index.html b/templates/index.html similarity index 100% rename from views/index.html rename to templates/index.html diff --git a/views/docs.html b/templates/views/docs.html similarity index 100% rename from views/docs.html rename to templates/views/docs.html diff --git a/views/document-image.html b/templates/views/document-image.html similarity index 100% rename from views/document-image.html rename to templates/views/document-image.html diff --git a/views/document-paper.html b/templates/views/document-paper.html similarity index 100% rename from views/document-paper.html rename to templates/views/document-paper.html diff --git a/views/home.html b/templates/views/home.html similarity index 100% rename from views/home.html rename to templates/views/home.html diff --git a/views/pdf.html b/templates/views/pdf.html similarity index 100% rename from views/pdf.html rename to templates/views/pdf.html diff --git a/views/schedule.html b/templates/views/schedule.html similarity index 100% rename from views/schedule.html rename to templates/views/schedule.html diff --git a/views/team.html b/templates/views/team.html similarity index 100% rename from views/team.html rename to templates/views/team.html diff --git a/views/timeline.html b/templates/views/timeline.html similarity index 100% rename from views/timeline.html rename to templates/views/timeline.html