express mockjs api middleware for Express
$ npm install --save-dev express-mockjs
- Create a directory
api-server
, then create the fileapp.js
, the content is:
var path = require('path') var express = require('express') var mockjs = require('express-mockjs') var app = express() // Use the default path '/' (Not recommended) // app.use(mockjs(path.join(__dirname, 'mocks'))) // Use a custom path '/api' app.use('/api', mockjs(path.join(__dirname, 'mocks'))) // Here you can add any code. app.listen(3000);
- Create a
mocks
directory underapi-server
and createdata.json
as follows:
/** * api interface description * * @url /test-api */ { "code": 0, "result|5": [ { "uid|+1": 1, "name": "@name", "email": "@email" } ] }
- Install dependent modules
$ npm i -S express express-mockjs
- Start
$ node app.js # or $ nodemon app.js
You can then access the http://localhost:3000/api to view API documents.
Recommended using nodemon to monitor auto restart services
. ├── mocks ├── home ⎪ ├── data.json ├── user ⎪ ├── data.js ⎪ ├── data.json ├── game ├── data.json
Mock JSON
here is not a real JSON file, and more like a JS file, so you want to use the following format.
Hypothetical file in 'mocks/home/test.json'
/** * Interface function description * * @url /api-access-path * * Parameter description and other instructions. * uid: user ID * name: username * email: the email * etc. */ { "code": 0, "result|5": [ { "uid|+1": 1, "name": "@name", "email": "@email" } ] }
Then you can access the http://localhost:3000/api/api-access-path through the browser.
Of course, you can also use the JS file directly.
/** * home page links * * @url /home-links * * Here you can write a detailed description * of the parameters of the information. */ module.exports = { "code": function () { // simulation error code, 1/10 probability of error code 1. return Math.random() < 0.1 ? 1 : 0; }, "list|5-10": [ {"title": "@title", "link": "@url"} ] };
Or export function.
/** * user page - user info * * @url /user?uid=233 * * GET: Request method and parameter * uid This is the requested userID * * Here you can write a detailed description * of the parameters of the information. */ module.exports = function (req) { var uid = req.query.uid; if (!uid) { return { code: -1, msg: 'no uid', } } return { code: 0, data: { "uid": +uid, "name": "@name", "age|20-30": 1, "email": "@email", "date": "@date", }, }; };