- /**
- Includes.js
- File used for getting the header and footer
- */
- const utils = require('../utils/utils.js');
-
- const HEADER_FILE = "includes/header.html";
-
- const FOOTER_FILE = "includes/footer.html";
-
- const Promise = require('promise');
-
- const crypto = require('crypto');
-
- module.exports =
- {
- /** Appends the header html section to the result which is
- * sent to the user.
- *
- * @param result
- * @return {*} a promise retrieved from the utils.include function
- */
- printHeader: function()
- {
- return utils.include(HEADER_FILE);
- },
-
-
- /**
- * Appends the footer to the result object
- *
- * @return {*|Promise}
- */
- printFooter: function()
- {
- return utils.include(FOOTER_FILE);
- },
-
-
- /**Sends a css file to the user
- *
- * @param result
- * @param path
- * @return {*}
- */
- sendCSS: function(result, path, cache)
- {
-
-
- var css = cache.get(path);
-
- if(css == null)
- {
- utils.include("./" + path).then(function(content)
- {
- var eTag = crypto.createHash('md5').update(content).digest('hex');
- result.writeHead(200, {'Content-Type': 'text/css', 'Cache-Control': 'public, max-age=2678400', 'ETag': '"' + eTag + '"', 'Vary': 'Accept-Encoding'});
- result.write(content);
- result.end();
- cache.put(path, content);
- }).catch(function(error)
- {
- console.log(error);
- });
- }
- else
- {
- var eTag = crypto.createHash('md5').update(css).digest('hex');
- result.writeHead(200, {'Content-Type': 'text/css', 'Cache-Control': 'public, max-age=2678400', 'ETag': '"' + eTag + '"', 'Vary': 'Accept-Encoding'});
- result.write(css);
- result.end();
- }
- }
- };
|