"session_timeout": 1800000, | "session_timeout": 1800000, | ||||
"dir": { | "dir": { | ||||
"imgs": "imgs", | "imgs": "imgs", | ||||
"web": "web | |||||
"web": "web" | |||||
}, | }, | ||||
"debug": false, | "debug": false, | ||||
"max_runs": 9999, | "max_runs": 9999, |
var crypto = require("crypto"); | var crypto = require("crypto"); | ||||
var zlib = require("zlib"); | var zlib = require("zlib"); | ||||
var fs = require("fs"); | var fs = require("fs"); | ||||
var log = require("mlogger"); | |||||
var preprocess = require("./preprocess.js"); | var preprocess = require("./preprocess.js"); | ||||
var sessions = {}; | var sessions = {}; | ||||
_end: function(str) { | _end: function(str) { | ||||
if (this.conf.debug) { | if (this.conf.debug) { | ||||
var ms = (new Date().getTime() - this.startTime.getTime()); | var ms = (new Date().getTime() - this.startTime.getTime()); | ||||
console.log( | |||||
log.info( | |||||
"Request:\t"+ | |||||
ms+" millisecond(s)\t"+ | ms+" millisecond(s)\t"+ | ||||
(this.statusCode || 200)+"\t"+ | (this.statusCode || 200)+"\t"+ | ||||
this.req.url | this.req.url | ||||
); | ); | ||||
} else { | } else { | ||||
console.log(this.req.url); | |||||
log.info("Request: "+this.req.url); | |||||
} | } | ||||
this.res.writeHead(this.statusCode, this.headers); | this.res.writeHead(this.statusCode, this.headers); | ||||
}, | }, | ||||
fail: function(err) { | fail: function(err) { | ||||
console.log("Sending error to client:"); | |||||
console.trace(err); | |||||
log.info("Sending error to client:"); | |||||
log.info(err); | |||||
this.setHeader("Content-Type", "application/json"); | this.setHeader("Content-Type", "application/json"); | ||||
var fs = require("fs"); | var fs = require("fs"); | ||||
var zlib = require("zlib"); | var zlib = require("zlib"); | ||||
var browserPrefix = require("browser-prefix"); | var browserPrefix = require("browser-prefix"); | ||||
var log = require("mlogger"); | |||||
var minify = require("./minify.js"); | var minify = require("./minify.js"); | ||||
var includeHtml = require("./includeHtml.js"); | var includeHtml = require("./includeHtml.js"); | ||||
//Errors will usually be because an endpoint doesn't exist | //Errors will usually be because an endpoint doesn't exist | ||||
} catch (err) { | } catch (err) { | ||||
if (err.code == "ENOENT") { | |||||
console.log(err.toString()); | |||||
if (err.code === "ENOENT" || err.code === "MODULE_NOT_FOUND") { | |||||
log.error("File not found: "+conf.dir.web+"/"+ep.path); | |||||
errs = true; | errs = true; | ||||
} else { | } else { | ||||
throw err; | throw err; |
"browser-prefix": "^0.1.0", | "browser-prefix": "^0.1.0", | ||||
"formidable": "^1.0.17", | "formidable": "^1.0.17", | ||||
"html-minifier": "^0.7.2", | "html-minifier": "^0.7.2", | ||||
"mlogger": "^1.1.0", | |||||
"pg": "^4.4.0", | "pg": "^4.4.0", | ||||
"scrypt": "^4.0.7", | "scrypt": "^4.0.7", | ||||
"uglify-js": "^2.4.24", | "uglify-js": "^2.4.24", |
function deleteFiles(dir) { | function deleteFiles(dir) { | ||||
fs.readdirSync(dir).forEach(function(f) { | fs.readdirSync(dir).forEach(function(f) { | ||||
wrench.rmdirSyncRecursive(dir+"/"+f); | |||||
if (f[0] === ".") | |||||
return; | |||||
try { | |||||
wrench.rmdirSyncRecursive(dir+"/"+f); | |||||
} catch (err) { | |||||
//:) | |||||
} | |||||
}); | }); | ||||
} | } | ||||
var domain = require("domain"); | var domain = require("domain"); | ||||
var zlib = require("zlib"); | var zlib = require("zlib"); | ||||
var wrench = require("wrench"); | var wrench = require("wrench"); | ||||
var loader = require("./lib/loader.js"); | |||||
var pg = require("pg"); | var pg = require("pg"); | ||||
var log = require("mlogger"); | |||||
var loader = require("./lib/loader.js"); | |||||
var Context = require("./lib/context.js"); | var Context = require("./lib/context.js"); | ||||
var conf = JSON.parse(fs.readFileSync("conf.json")); | var conf = JSON.parse(fs.readFileSync("conf.json")); | ||||
} | } | ||||
server.listen(conf.port); | server.listen(conf.port); | ||||
console.log("Listening on port "+conf.port+"."); | |||||
log.info("Listening on port "+conf.port+"."); | |||||
purgeCollections(); | purgeCollections(); | ||||
}); | }); | ||||
}); | }); | ||||
if (res.rowCount > 0) { | if (res.rowCount > 0) { | ||||
console.log( | |||||
log.info( | |||||
"Deleted "+res.rowCount+" collections "+ | "Deleted "+res.rowCount+" collections "+ | ||||
"from over "+timeout+" ago." | "from over "+timeout+" ago." | ||||
); | ); |
<!DOCTYPE html> | |||||
<html> | |||||
<head> | |||||
<meta charset="utf-8"> | |||||
</head> | |||||
<body> | |||||
404, file not found. | |||||
</body> | |||||
</html> |
var fs = require("fs"); | var fs = require("fs"); | ||||
var zlib = require("zlib"); | var zlib = require("zlib"); | ||||
var log = require("mlogger"); | |||||
var gzipped; | var gzipped; | ||||
var favicon = fs.readFileSync("favicon.ico"); | |||||
var favicon; | |||||
try { | |||||
favicon = fs.readFileSync("favicon.ico"); | |||||
} catch (err) { | |||||
if (err.code === "ENOENT") | |||||
log.notice("No favicon.ico found."); | |||||
else | |||||
throw err; | |||||
} | |||||
zlib.gzip(favicon, function(err, res) { | |||||
gzipped = res; | |||||
}); | |||||
if (favicon !== undefined) { | |||||
zlib.gzip(favicon, function(err, res) { | |||||
gzipped = res; | |||||
}); | |||||
} | |||||
module.exports = function(ctx) { | module.exports = function(ctx) { | ||||
if (favicon) { | if (favicon) { | ||||
ctx.res.setHeader( | ctx.res.setHeader( | ||||
"Cache-Control", | "Cache-Control", |