Simple HTTP Server
Create a simple HTTP server.
Usage
var httpServer = require( '@stdlib/net/simple-http-server' );
httpServer( [options,] [clbk] )
Creates a simple HTTP server.
// Serve from the current working directory of the calling process:
httpServer();
The function accepts the following options:
- dir: directory from which to serve files.
- port: server port. Default:
0
(i.e., randomly assigned). - maxport: max server port (used when port hunting). Default:
=port
. - hostname: server hostname.
- address: server address. Default:
"0.0.0.0"
. - open:
boolean
indicating whether to launch a web browser.
By default, the server serves content from the current working directory of the calling process. To serve from an alternative directory (resolved relative to the current working directory), set the dir
option.
var opts = {
'dir': './examples'
};
httpServer( opts );
To obtain the server
handle, provide a callback.
var nextTick = require( '@stdlib/utils/next-tick' );
function onReady( error, server ) {
if ( error ) {
throw error;
}
nextTick( close );
function close() {
server.close();
}
}
httpServer( onReady );
Examples
var httpServer = require( '@stdlib/net/simple-http-server' );
var opts = {
'dir': './',
'port': 7331,
'hostname': 'localhost',
'open': false
};
httpServer( opts, clbk );
function clbk( error, server ) {
if ( error ) {
throw error;
}
// Give the user a few seconds to open her web browser before closing the server...
setTimeout( onTimeout, 5000 );
function onTimeout() {
server.close();
}
}
CLI
Usage
Usage: simple-http-server [options] [dirpath]
Options:
-h, --help Print this message.
-V, --version Print the package version.
-p, --port port Server port. Default: 0.
--maxport maxport Max server port. Default: `port`.
--hostname hostname Server hostname.
--address address Server address. Default: 0.0.0.0.
--open Launch a browser once server is ready.
The application recognizes the following environment variables:
DEBUG
: enable verbose logging.PORT
: server port.MAXPORT
: max server port.HOSTNAME
: server hostname.ADDRESS
: server address.
Notes
- Command-line arguments always take precedence over environment variables.
Examples
To serve content from the current directory,
$ DEBUG=* simple-http-server
...
To serve content from an alternative directory,
$ DEBUG=* simple-http-server ./examples
...