node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



Ghost server in node.js mocking RESTFUL API server, route calls to static JSON files with different HTTP methods

What does it do?

Ghost-Node-API was written to simulate a simple RESTFUL API. API calls are routed to static JSON files. As an example if your sample directory looks like this:

+ sample-files
  - customers.json
  - users.json
  + products
    - printers.json

with users.json

  {id: 1, name: 'John Doe'},
  {id: 2, name: 'Peter Sample'}

GET localhost:7777/api/v1/users

returns all users inside users.json

GET localhost:7777/api/v1/users/1

returns one user with the id == 1

GET localhost:7777/api/v1/products/printers

returns all items from products/printers.json


npm install mini-mock-api


var API = require('mini-mock-api');
var myApi = new API({
  basePath: '/api/v1',
  mockPath: 'mock-files',
  idAttribute: '_id'

To run the server:

cd ghost-node-api
npm install
npm start
Open your Browser or Postman and go to `localhost:7777/api/v1/users`

To debug the server:

node-debug server.js
Open your browser and go to

Custom Routes

If static JSON files are not sufficient you can also add custom routes by defining your own request handler functions. Custom routes are supported for GET, POST, PUT and DELETE methods:'customers', function(request, response){
  response.json({status: 'new customer created'});


All API responses can be wrapped by defining a beautify function. The functions also gets passed the request object as the second parameter. In this example all returned collections are wrapped into results and a total count is added.

myApi.beautify = function(data, request){
    return {
      results: data,
      count: data.length
  return data;


Malik Nur