1.7.0 • Published 4 years ago

dev-web-server v1.7.0

Weekly downloads
10
License
MIT
Repository
github
Last release
4 years ago

DEV WEB SERVER

A simple web & API server for your development.

Definition

This project is a NodeJS application that permits to simply and quickly create a WEB local server. It can distribute any static or dynamic data and file. This will be useful to mock an API or serve your web site project.

Features

This application creates, by default, a web server on http://localhost:8080/ that targets the website root from the launching directory.

You can specify :

  • a domain,
  • a port,
  • a target directory for the web site root,
  • a response time delay,
  • an set of an API endpoints
  • activate CORS.

Default webpage

The default webpage at the website root is index.html.

Favicon

The web server supports using favicon.ico. It has to be located at the site root.

Endpoint verbs

The web server supports all endpoint verbs.

Content types

The requested file content types is resolved with mime-types. This tool looks up the content type from the requested file extension. If nothing matches, default content type is used : application/octet-stream.

Required environment

  • A release of NodeJS >= 5.0.0 must be installed on your system.

Installation

Install the package on your system like this:

npm install -g dev-web-server

Un-installation

Uninstall the package by typing the next command:

npm uninstall -g dev-web-server

Uses

Launch server

To launch the web server with default parameters:

dev-web-server

With this command, the application will create a web server :

  • on URL http://localhost:8080/
  • that will target website root to the launching directory
  • without any time delay
  • without API endpoints.

The CLI Parameters

ParameterDescription
DOMAINTo choose a domain (default : localhost)
PORTTo choose a port (default : 8080)
BASEDIRrelative or absolute path to the website root (default : launching directory)
DELAYTime delay in milliseconds before each server response (default : 0 ms)
ENDPOINTSrelative or absolute path to the file that contains API endpoints (see definition below)
WITHCORSactive CORS headers in responses

Examples

dev-web-server DOMAIN 0.0.0.0 PORT 1234 BASEDIR ..\rep\httpdocs DELAY 2000 ENDPOINTS ..\rep\server\my-endpoints.js

This command will launch a web server :

  • accessible at url http://mon-domain.fr:1234/
  • that will target website root to the directory ..\rep\httpdocs\
  • with a time delay of 2000ms before each response
  • with API endpoints defined in the file at path ..\rep\server\my-endpoints.js.

The JSON Configuration File

We can use a JSON configuration file at the launching directory : dev-web-server.json. Any argument in the command line will override the corresponding one in this file.

example :

{
  "domain": "0.0.0.0",
  "port": 13002,
  "baseDir": "./dist/test-pages",
  "delay": 0,
  "endPointsFilePath": "./api-proxy/api.js",
  "withCORS": "true"
}

Definition of the API endpoints file

The API endpoints can be defined in a NodeJS script file. It has to export a JavaScript hash object. Each one of its properties is endpoint declaration: the key is the URL part string and the value is a function to execute.

Endpoint function

The endpoint function permits to define the response. It takes in arguments:

ArgumentTypeDescription
reqRequestNodeJS request object
resResponseNodeJS response object
paramsObjectHash object parameters of the request (taken from body or the query string)
sendSuccessFunctionCallback function to call to send a successful response
sendErrorFunctionCallback function to call to send a failed response

Successful callback

The sendSuccess callback allows to send a successful response. It contains the result object of the request. It takes in arguments:

ArgumentTypeDescription
reqRequestNodeJS request object
resResponseNodeJS response object
resultObjectResult object of the request
jsonpCallback'string'optional JSONP callback function name to activate JSONP response

Failed callback

The sendError callback allows to send a failed response. It contains the error result object of the request. It takes in arguments:

ArgumentsTypesDescription
reqRequestNodeJS request object
resResponseNodeJS response object
httpCodeNumericHTTP code of the response
messagestringError text message
resultObjectResult object of the request
jsonpCallback'string'optional JSONP callback function name to activate JSONP response

Example :

var Repository = {
  count:0
};

module.exports = {
  '/example': function (req, res, params, sendSuccess, sendError) {

    // Response result is: '{"test":"coucou","count":1}'.
    // HTTP code is 200
    sendSuccess(req, res, {
      test: 'coucou',
      count: Repository.count++
    });

  },

  '/exampleJSONP': function (req, res, params, sendSuccess, sendError) {

    // Response result is: myCallback({"test":"coucou","count":1}).
    // HTTP code is 200
    sendSuccess(req, res, {
      test: 'coucou',
      count: Repository.count++
    }, params.myCallbackName);

  },

  '/exampleError': function (req, res, params, sendSuccess, sendError) {

    // Response result is: '{"code":401,"message":"An error occurred during doing something"}'.
    // HTTP code is 401
    sendError(req, res, 401, 'An error occurred during doing something');

  }
};

Stop server

To stop the server, type Ctrl+C.

1.7.0

4 years ago

1.6.2

6 years ago

1.6.1

8 years ago

1.6.0

8 years ago

1.5.0

9 years ago

1.4.5

9 years ago

1.4.4

9 years ago

1.4.3

9 years ago

1.4.2

9 years ago

1.4.1

9 years ago

1.4.0

9 years ago