UNPKG

oneshoot

Version:

WebSockets and static web server for just one request

56 lines (40 loc) 1.13 kB
var fs = require('fs') var join = require('path').join var escapeHtml = require('escape-html') var map = require('async').map function directory(req, res, done) { return function(error) { if(error) return done(error) var url = escapeHtml(req.originalUrl || req.url) fs.stat(url, function(error, stats) { if(error) return done(error) if(!stats.isDirectory()) return done() fs.readdir(url, function(error, files) { if(error) return done(error) map(files, function(item, callback) { fs.stat(join(url, item), function(error, stats) { if(error) return callback(error) stats.name = item callback(null, stats) }) }, function(error, results) { if(error) return done(error) var body = JSON.stringify(results) // standard headers res.setHeader('Content-Type', 'application/json') res.setHeader('Content-Length', body.length) res.end(body) }) }) }) } } module.exports = directory