npm.io
0.3.3 • Published 9 years agoCLI

chr-mock

Licence
MIT
Version
0.3.3
Deps
7
Vulns
0
Weekly
0

chr-mock

A simple Koa based mock-server, provide the most basic REST service on watch a js/json file for myself.
chr-mock David npm Travis Coveralls

Usage

$ npm i -g chr-mock
$ chr

  Usage: index [options] [command]


  Commands:

    watch [file]  Add a file to watch

  Options:

    -h, --help      output usage information
    -p, --port <n>  Add port to listen, default is 4000

# Default file path is ./test/data.test.json
$ chr watch
~/test/data.test.json is watched

Method for now

Just one level provided: /tablename/id, because of the lazy author.

TODOs
  • get: http://***/tablename?page=2&limit=10.
  • get: http://***/tablename/id or tablename?name=value etc...
  • post: could change element too.
get
http://127.0.0.1:4000/tablename[/id/][?name=value]

http://127.0.0.1:4000/images
http://127.0.0.1:4000/images/1
http://127.0.0.1:4000/images?name=png
  • just has tablename
    The results of tablename's all datas.
  • tablename/id
    Nothing to say.
  • data filter
    When querys were followed with tablename, data would be filted by all key-value pair in querys.
Notice
  1. If query key is id, filter would be exact matching, others was fuzzy.
  2. These were keywords of query to reserve: page, limit, asc, desc. These would be used in the near future. maybe
post
POST http://127.0.0.1:4000/tablename
Content-Type: application/json

{ "id":"1","hehe":"123" }

###

POST http://127.0.0.1:4000/tablename?name=png
Content-Type: application/json

{ "id":"1","hehe":"123" }
  • without query: use the default keyword id to match data, if not even id, it would be added following by the last object in json file.
  • with query: query first, query > id!!!, if both query and body.id was setted, it would just match query. To solve this, follow query ?id=*.
  • query match is the same with get#Notice.
  • result is Object.assign(origin, new).
patch

one thing different with post, it could not add new element.

delete
DELETE http://127.0.0.1:4000/tablename
Content-Type: application/json

{ "name":"png","hehe":"123" }
  • delete without query params. filter is working on body, of course the same with get#Notice query.
  • result were all deleted elements.

Thank for

Teacher Ryan: ryan2-cli
Others in

LICENSE

MIT

Keywords