|
@@ -18,20 +18,20 @@ var routes = {
|
|
capes: require("./routes/capes")
|
|
capes: require("./routes/capes")
|
|
};
|
|
};
|
|
|
|
|
|
-function asset_request(req, res) {
|
|
|
|
|
|
+// serves assets from lib/public
|
|
|
|
+function asset_request(req, callback) {
|
|
var filename = path.join(__dirname, "public", req.url.path_list.join("/"));
|
|
var filename = path.join(__dirname, "public", req.url.path_list.join("/"));
|
|
fs.exists(filename, function(exists) {
|
|
fs.exists(filename, function(exists) {
|
|
if (exists) {
|
|
if (exists) {
|
|
- res.writeHead(200, {
|
|
|
|
- "Content-type": mime.lookup(filename),
|
|
|
|
- "Cache-Control": "max-age=7200, public", // cache for 2 hours
|
|
|
|
|
|
+ fs.readFile(filename, function(err, data) {
|
|
|
|
+ callback({
|
|
|
|
+ body: data,
|
|
|
|
+ type: mime.lookup(filename),
|
|
|
|
+ err: err
|
|
|
|
+ });
|
|
});
|
|
});
|
|
- fs.createReadStream(filename).pipe(res);
|
|
|
|
} else {
|
|
} else {
|
|
- res.writeHead(404, {
|
|
|
|
- "Content-type": "text/plain"
|
|
|
|
- });
|
|
|
|
- res.end("Not Found");
|
|
|
|
|
|
+ callback({});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -95,7 +95,9 @@ function requestHandler(req, res) {
|
|
});
|
|
});
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
- asset_request(req, res);
|
|
|
|
|
|
+ asset_request(req, function(result) {
|
|
|
|
+ response(req, res, result);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
} catch(e) {
|
|
} catch(e) {
|
|
var error = JSON.stringify(req.headers) + "\n" + e.stack;
|
|
var error = JSON.stringify(req.headers) + "\n" + e.stack;
|