mirror of
https://github.com/Damillora/Fuyuko
synced 2024-11-22 05:17:31 +00:00
34 lines
954 B
JavaScript
34 lines
954 B
JavaScript
|
const mime = require('mime-types');
|
||
|
const fs = require('fs');
|
||
|
const path = require('path');
|
||
|
|
||
|
var handleFile = function(filePath, req, res, next) {
|
||
|
fs.lstat(filePath, function(err,stats) {
|
||
|
if(err) {
|
||
|
if(err.code === 'ENOENT') {
|
||
|
next();
|
||
|
}
|
||
|
}
|
||
|
if(stats.isDirectory()) {
|
||
|
if(filePath.endsWith("/")) {
|
||
|
handleFile(path.join(filePath,'/index.gmi'), req, res, next);
|
||
|
} else {
|
||
|
res.redirect(req.path+"/");
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
fs.open(filePath, 'r', function (err, fd) {
|
||
|
var contents = fs.readFileSync(fd);
|
||
|
res.meta = "text/gemini";
|
||
|
res.end(contents);
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
module.exports = function(documentRoot) {
|
||
|
return function(req, res, next) {
|
||
|
var filePath = path.join(process.env.DOCUMENT_ROOT, req.path);
|
||
|
handleFile(filePath,req,res,next);
|
||
|
}
|
||
|
}
|