Skip to content

dloeda/mock-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm version

mock-js-server

A mock server that allow to generate responses by JSONs or JSs files

Configure it

The first step is to configure config/routes.json, where we will map our API endpoint routes to JSON/JS files.

{
  "^$": "../config/info.json",
  ".*user/{{userId}}.*": "user/default.js"
}

Mock files

There're multiple options to return a response via this server:

JSON file

This wil return JSON response at it's defined in the JSON file.

{
  "status": "OK"
}

Execute JS file

/*globals req, params, body, query, mock*/
mock = {
  id: Math.floor(Math.random() * 1000),
  userId: params.userId,
};

if (query) {
  if (query.name && query.surname)
    mock.fullname = `${query.name} ${query.surname}`;
}

Mock Object

You must use the @mock key to add contenType or statusCodel ike this:

{
  "@mock": {
    "status": 404,
    "contentType": "text/html",
    "content": "<html><head><title>404</title></head><body>You hit a 404</body></html>"
  }
}

Also you can add a download action to the mock:

{
  "@mock": {
    "status": 200,
    "@download": "./LICENSE"
  }
}

Or add extra headers:

{
  "@mock": {
    "status": 200,
    "headers": ["Access-Control-Allow-Origin: *"]
  }
}

Or an option, to delay the response:

{
  "@mock": {
    "status": 200,
    "delay": 1200
  }
}

Run it

Just run npm start to run it simple or configure as tu want with these options:

Option Key Default  Description
Config file -c config.json Name of configuration file
Config Folder --conf-folder  ./config/ Path of configuration's folder
Routes File --routes-file routes.json Name of the routes file
Mock Folder --mocks-folder ./mocks/ Path of the mock folder
Port -p None Listening port
Delay -d None Delay in ms
Headers -H None Extra Headers