Setup a mock server easily
JavaScript Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets
bin
dist
lib
.esformatter
.eslintrc
.gitignore
.jscsrc
.travis.yml
README.md
gulpfile.js
index.js
package.json
template.html

README.md

mocer Build Status NPM Version

Setup a mock server easily.

Why use this module?

  • Build a bridge between Frontend and Backend
  • This allows for parallel development

Usage

To use mocer, you has two choices: Cli or Middleware.

Use as command line

Step 1 : install globally.

$ npm install -g mocer

Step 2 : create mock file

After create a server, you can add some md file to mocks dir, for example:

my-project
├── app.js
├── mocks
│   ├── users
│   │   ├── 1.GET.md
│   │   ├── 2.GET.md
│   │   └── 3.GET.md
│   ├── users.GET.md
│   ├── users.POST.md
│   └── users.PUT.md
└── package.json

Step 3 : start mock server

$ cd my-project/mocks
$ mocer --baseDir .

And boom!! You will see something in you browser.

Use as A middleware for Node.js (browser-sync、express、 connect).

Step 1 : create a server

if browser-sync

var mocer = require('mocer');
var gulp = require('gulp');
var browserSync = require('browser-sync').create();

// Static server
gulp.task('browser-sync', function() {
  browserSync.init({
    server: {
    baseDir: './',
    middleware: [
      mocer(__dirname + '/mocks')
    ]}
  });
});

if express

var express = require('express');
var mocer = require('mocer');

var app = express();
app.use(mocer(__dirname + '/mocks'));
app.listen(3000);

if webpack-dev-server

var mocer = require('mocer');
module.exports = {
  devServer: {
    before: function(app) {
      app.get(/^\/(apis|_apis)\/*/, mocer(path.resolve(__dirname, '../mocks'))) //apis为匹配接口路径,_apis匹配接口生成的文档页面路径
    },
    contentBase: path.join(__dirname, "../src"),
    host: '0.0.0.0'
  }
}

if connect

var connect = require('connect');
var mocer = require('mocer');

var app = connect();
app.use(mocer(__dirname + '/mocks'));
app.listen(3000);

Step 2 : create mock md file

After create a server, you can add some md file to mocks dir, for example:

my-project
├── app.js
├── mocks
│   ├── users
│   │   ├── 1.GET.md
│   │   └── 2.GET.md
│   ├── users.GET.md
│   ├── users.POST.md
│   └── users.PUT.md
└── package.json

Step 3 : enjoy it

After start your server, you can use it.

For example 1 :

curl -i http://localhost:12306/users?_status=200 will get response:

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Date: Mon, 27 Jul 2015 16:23:34 GMT
Connection: keep-alive
Transfer-Encoding: chunked

[{
  "id": 1,
  "name": "foo",
  "email": "foo@gmail.com",
}, {
  "id": 2,
  "name": "bar",
  "email": "bar@gmail.com",
}]

_status=200 mean that you get a response with http status code 200. By default, _status equal to 200. so, curl http://localhost:12306/users will get a collect response too.

For example 2 :

curl -X POST http://localhost:12306/users?_status=422 will get response:

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json;charset=UTF-8
Date: Mon, 27 Jul 2015 16:22:45 GMT
Connection: keep-alive
Transfer-Encoding: chunked

{
  "code" : 1234,
  "description" : "bad email format"
}

You can see the Complete Example: