# mocer

> A middleware for Node.js (browser-sync, express, connect) to generate mock data.

Latest version **1.1.8** (published 2016-12-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install mocer
pnpm add mocer
yarn add mocer
bun add mocer
```

Provides the command `mocer`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.8 |
| Published | 2016-12-25 |
| First published | 2015-11-23 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.8.0 |
| Dependencies | 10 |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | forsigner |
| Maintainers | forsigner |
| Keywords | browser-sync, express, connect, mock, mocer, middleware |

## Links

- npm: https://www.npmjs.com/package/mocer
- Repository: https://github.com/forsigner/mocer
- Issues: https://github.com/forsigner/mocer/issues
- npm.io page: https://npm.io/package/mocer

## Dependencies (10)

- [opn](https://npm.io/package/opn.md) 3.0.2
- [faker](https://npm.io/package/faker.md) ^3.1.0
- [colors](https://npm.io/package/colors.md) 1.1.2
- [dev-ip](https://npm.io/package/dev-ip.md) 1.0.1
- [mockjs](https://npm.io/package/mockjs.md) ^1.0.1-beta3
- [connect](https://npm.io/package/connect.md) 3.4.0
- [commander](https://npm.io/package/commander.md) 2.9.0
- [decomment](https://npm.io/package/decomment.md) ^0.8.6
- [fs-jetpack](https://npm.io/package/fs-jetpack.md) 0.7.0
- [directory-tree](https://npm.io/package/directory-tree.md) ^0.1.1

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 1.1.8 (latest) — 2016-12-25
- 1.1.7 — 2016-09-28
- 1.1.6 — 2016-09-08
- 1.1.5 — 2016-09-08
- 1.1.4 — 2016-09-08
- 1.1.3 — 2016-09-07
- 1.1.2 — 2016-05-17
- 1.1.1 — 2016-04-21
- 1.1.0 — 2016-04-21
- 1.0.11 — 2016-03-01
- 1.0.10 — 2015-12-17
- 1.0.9 — 2015-12-10
- 1.0.8 — 2015-12-10
- 1.0.7 — 2015-11-24
- 1.0.6 — 2015-11-23
- … 6 more at https://npm.io/package/mocer/versions

## README

# mocer [![Build Status](https://travis-ci.org/forsigner/mocer.svg?branch=master)](https://travis-ci.org/forsigner/mocer) [![NPM Version](http://img.shields.io/npm/v/mocer.svg?style=flat)](https://www.npmjs.org/package/mocer)

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:

```bash
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**

```javascript
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**

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

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

**if connect**

```javascript
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:

```bash
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:

```bash
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:

```bash

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:
- [use with connect](https://github.com/forsigner/mocer-with-connect)

---
_Source: https://npm.io/package/mocer · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
