Socket
Book a DemoInstallSign in
Socket

fornax

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fornax

简单的mock服务

latest
npmnpm
Version
1.0.4
Version published
Maintainers
1
Created
Source

Fornax

基于koamock.js的mock服务器

Installation

$ npm install -g fornax

or local install

$ npm install fornax --save-dev

Usage

Usage: fornax [options] [command]

Options:

  -h, --help  output usage information

Commands:

  start       start mock server
  init        initialize project with .fornax.config.js

Config

all configuration in ./fornax.config.js

keydescriptiontypedefault
portmock server portnumber9000
apiPrefixprefix of server apistring/api
mockRootroot directory of mock filesstringmock
responseInterceptorhandle response before returnfunction(body)
responseKeykey in reponse bodyobject{code: 'code',message: 'msg',data: 'data'}
pageKeyparams for paginationobject{skip:'skip',limit:'limit',order:'order',orderBy:'orderBy',pageSize:'pageSize',currentPage:'currentPage'}

Mock files

mock
  ┠─ user
  ┃   ┠─ _id
  ┃   ┃   ┖─ order
  ┃   ┃       ┖─ _rest.js
  ┃   ┠─ _rest.js
  ┃   ┖─ _post.js
  ┠─ order
  ┃    ┖─ _rest.js
  ┖─ custmize.js

define template for mockjs

// mock/user/_rest.js
exports.mock = {
  'list|80-100': [
    {
      id: '@id',
      username: '@name',
      phone: /^1[34578]\d{9}$/,
      team: '@word(6)',
      address: '@county(true)',
      'gender|+1': [0, 1],
      email: '@email',
      lastip: '@ip',
      'status|+1': [0,1],
      'createdAt|100000000000-3535782743268': 1
    },
  ],
}
exports.responseInterceptor = function(body, ctx) {
  // override global responseInterceptor in config file
  return body;
}

pagination: get http://127.0.0.1:9000/api/user?skip=0&limit=10 query the first page and pageSize is 10

the response is

{
  code: 200,
  msg: "success",
  data: {
    list: [
      {
        id: "440000199206017397",
        username: "Jeffrey Miller",
        phone: "13218261491",
        team: "itezre",
        address: "浙江省 舟山市 其它区",
        gender: 0,
        email: "z.hkisnyh@mpxegc.ni",
        lastip: "153.69.229.78",
        status: 0,
        createdAt: 313244937539
      },
    ],
    total: 83
  }
}

pagination with params: get http://127.0.0.1:9000/api/user?skip=0&limit=10&status=1
get user: get http://127.0.0.1:9000/api/user/440000199206017397
create user: post http://127.0.0.1:9000/api/user
update user: put http://127.0.0.1:9000/api/user/440000199206017397
delete user: delete http://127.0.0.1:9000/api/user/440000199206017397

visis user's order: get http://127.0.0.1:9000/api/user/440000199206017397/order

rewrite get/post/put/delete

// mock/user/_post.js
exports.handle = () => {
  return async ctx => {
    // koa request handler

    ctx.responseInterceptor = function(body, ctx) {
      // override global responseInterceptor in config file
    }
  }
}

customize handler

exports.handle = (router) => {
  // koa-router
  router.get('/customizeRouter', ctx => {
    // koa request handler

    ctx.responseInterceptor = function(body, ctx) {
      // override global responseInterceptor in config file
    }
  });
}

FAQs

Package last updated on 14 Dec 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts