electric fence
This is a small hapi module to allow you to serve files and directories from a local path mapped to a url.
How to use
Simply give it a local path and a remote base url
var ElectricFence = require('electricfence');
var Hapi = require('hapi');
var server = new Hapi.server(80);
var options = {
path: 'public',
url: '/',
listing: true,
index: false,
cache: 3600000
};
server.pack.register([{plugin: ElectricFence: options: options}]);
Those are the defaults, so if you pass no options those will be used.
path
(string, optional, defaultpublic
): folder to serve files fromurl
(string, optional, default/
): url to serve files atlisting
(boolean, defaulttrue
): determines if 'index.html' will be served if found in the folder when - requesting a directoryindex
(boolean, defaultfalse
): determines if directory listing is generated when a directory is requested without an index documentcache
(integer, default3600000
(one hour)): time in milliseconds to tell the browser to cache results. Set to 0 to disable browser caching headerslabels
(string or array, will be passed to pulgin.select see Hapi API docs for more information.
Why?
"But Gar," you say, "hapi already has directory and file handlers!"
Yes, but if your server already has a catchall route such as:
server;
You can't then add
server;
The paths will conflict. What electricfence allows you to do is just this.
How it works
electricfence adds explicit file and directory handlers for anything that's in the local path you give it. This means for example if you have a js
and css
directory in ./public
, and you also have a robots.txt
file, electricfence will add these handlers
server; server; server;