A mock server that allow to generate responses by JSONs or JSs files
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"
}There're multiple options to return a response via this server:
This wil return JSON response at it's defined in the JSON file.
{
"status": "OK"
}/*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}`;
}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
}
}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 |