Natural Preference for Minification

    file-server

    2.2.0 • Public • Published

    file-server

    Simple http file server that supports files and directories

    Example

    const FileServer = require('file-server');
    
    const fileServer = new FileServer((error, request, response) => {
        response.statusCode = error.code || 500;
        response.end(error);
    });
    
    const serveRobots = fileServer.serveFile('./robots.txt', 'text/plain');
    
    require('http')
        .createServer(serveRobots)
        .listen(8080);

    new FileServer(errorCallback, [cacheSize])

    The FileServer constructor takes 2 arguments errorCallback and an optional cacheSize (bytes).

    The callback gets 3 arguments (error, request, response)

    cacheSize defaults to 1024 * 1000

    If the error argument was the result of a missing file the error will have a code of 404. Other codes may be added in the future.

    const FileServer = require('file-server');
    
    const fileServer = new FileServer((error, request, response) => {
        response.statusCode = error.code || 500;
        response.end(error);
    });

    fileServer.serveFile(fileName, mimeType, [maxAge])

    The serveFile method takes 3 arguments fileName, mimeType and an optional maxAge.

    fileName is the name of the file to serve.

    mimeType is a string, defining which mime type should be used.

    maxAge will defaults to 0 (rely on ETags)

    This will return a function that takes a request and a response and will stream the file to the response, or in the case of an error, call the error callback passed in at construction.

    const serveRobots = fileServer.serveFile('./robots.txt', 'text/plain');
    
    serveRobots(request, response);

    fileServer.serveDirectory(rootDirectory, mimeTypes, [maxAge])

    The serveDirectory method takes 3 arguments rootDirectory, mimeTypes and an optional maxAge.

    rootDirectory is the base directory to serve files from. If a file above this directory is asked for the request will error with a 404.

    mimeTypes is an object keyed by extension, defining which mime type should be used for the extension. If a file is asked for with an extension that is not defined the request will error with a 404.

    maxAge will defaults to 0 (rely on ETags)

    This will return a function that takes a request, response and a filename and will stream the file to the response, or in the case of an error, call the error callback passed in at construction.

    const serveImagesDirectory = fileServer.serveDirectory('./images', {
        '.gif': 'image/gif',
        '.png': 'image/png',
        '.jpg': 'image/jpeg',
    });
    
    serveImagesDirectory(request, response, request.url);

    If the fileName argument is ommited, the filename will be automatically pulled from request.url

    serveImagesDirectory(request, response);

    Closing connections

    File server automically closes any watchers on files or directories during process end. If you have a need for stopping and starting tha file server throughout a process (i.e. using jest), you may also programmatically close all open file watchers on the server 'close' event.

    const fileServer = new FileServer((error, request, response) => {
        response.statusCode = error.code || 500;
        response.end(error);
    });
    
    // Your file serving setup
    
    require('http')
        .createServer(fileServer.serveDirectory('./images', {
            '.gif': 'image/gif',
            '.png': 'image/png',
            '.jpg': 'image/jpeg',
        }))
        .listen(8080)
        .on('close', () => {
            fileServer.close(() => {
                console.log('We have closed all file server connections');
            });
        });

    Install

    npm i file-server

    DownloadsWeekly Downloads

    1,098

    Version

    2.2.0

    License

    MIT

    Unpacked Size

    32.7 kB

    Total Files

    5

    Last publish

    Collaborators

    • korynunn
    • mauricebutler