Browse Source

use new response module for index

jomo 10 years ago
parent
commit
0b0882e63d
3 changed files with 13 additions and 9 deletions
  1. 5 2
      lib/response.js
  2. 5 6
      lib/routes/index.js
  3. 3 1
      lib/server.js

+ 5 - 2
lib/response.js

@@ -16,7 +16,7 @@ var human_status = {
 // +request+ a http.IncomingMessage
 // +response+ a http.ServerResponse
 // +result+ an object with:
-//  * status:   see human_status, required
+//  * status:   see human_status, required for images
 //  * redirect: redirect URL
 //  * body:     file or message, required unless redirect is present or status is < 0
 //  * type:     a valid Content-Type for the body, defaults to "text/plain"
@@ -41,11 +41,14 @@ module.exports = function(request, response, result) {
     "Content-Type": result.type || "text/plain",
     "Cache-Control": "max-age=" + config.browser_cache_time + ", public",
     "Response-Time": Date.now() - request.start,
-    "X-Storage-Type": human_status[result.status],
     "X-Request-ID": request.id,
     "Access-Control-Allow-Origin": "*"
   };
 
+  if (result.status) {
+    headers["X-Storage-Type"] = human_status[result.status];
+  }
+
   if (result.err) {
     logging.error(result.err);
   }

+ 5 - 6
lib/routes/index.js

@@ -3,17 +3,16 @@ var path = require("path");
 var jade = require("jade");
 
 // compile jade
-var index = jade.compileFile(path.join(__dirname, "../views/index.jade"));
+var index = jade.compileFile(path.join(__dirname, "..", "views", "index.jade"));
 
-module.exports = function(req, res) {
+module.exports = function(req, callback) {
   var html = index({
     title: "Crafatar",
     domain: "https://" + req.headers.host,
     config: config
   });
-  res.writeHead(200, {
-    "Content-Length": Buffer.byteLength(html, "UTF-8"),
-    "Content-Type": "text/html; charset=utf-8"
+  callback({
+    body: html,
+    type: "text/html; charset=utf-8"
   });
-  res.end(html);
 };

+ 3 - 1
lib/server.js

@@ -70,7 +70,9 @@ function requestHandler(req, res) {
     try {
       switch (local_path) {
         case "":
-        routes.index(req, res);
+        routes.index(req, function(result) {
+          response(req, res, result);
+        });
         break;
         case "avatars":
         routes.avatars(req, function(result) {