combine.fm/routes/index.js

31 lines
1 KiB
JavaScript
Raw Normal View History

2014-12-15 12:49:17 +00:00
"use strict";
2015-05-17 19:10:30 +01:00
var React = require("react");
var Router = require("react-router");
require("node-jsx").install({extension: ".jsx"});
var routes = require("../views/app.jsx").routes;
2014-12-15 12:49:17 +00:00
module.exports = function(req, res, next) {
2015-05-17 19:10:30 +01:00
req.db.matches.find().sort({"created_at": -1}).limit(6).toArray().then(function(docs){
var recents = [];
2014-12-15 12:49:17 +00:00
docs.forEach(function(doc) {
2015-05-17 19:10:30 +01:00
var shares = Object.keys(doc.services).map(function (key) {return doc.services[key]; });
2015-01-06 12:58:57 +00:00
shares.some(function(item) {
2015-05-17 19:10:30 +01:00
if (item.service === doc._id.split("$$")[0]) { // eslint-disable-line no-underscore-dangle
2015-01-06 12:58:57 +00:00
recents.push(item);
return false;
}
});
});
2014-12-15 12:49:17 +00:00
Router.run(routes, req.url, function (Handler) {
var App = React.createFactory(Handler);
2015-01-06 12:58:57 +00:00
var content = React.renderToString(new App({recents: recents}));
2015-05-17 19:10:30 +01:00
res.send("<!doctype html>\n" + content.replace("</body></html>", "<script>var recents = " + JSON.stringify(recents) + "</script></body></html>"));
});
2015-01-06 12:58:57 +00:00
}).catch(function(error) {
next(error);
2014-12-15 12:49:17 +00:00
});
2015-05-17 19:10:30 +01:00
};