router mock
why
Mock response data like restful api use router string, for example:
// ajax request use axios
Axios.get('/api/user/10000')
.then(res => { /* get response res.data */});
// mock response data like restful router
Mock.get('/api/user/:id', id => {
return { /* return response data */ };
})
how
mocker
often used in the development environment, if you want the production environment to be the same, you also use it:
npm i -D router-mock
in your js
files:
// es6
import Mock from 'router-mock';
Mock.mock({ /* MockJS template */ });
// mock response data like restful api
Mock.get('/api/users', () => {});
Mock.post('/api/user', () => {});
// dynamic router mock, callback arguments has placeholder params
Mock.get('/api/user/:id', id => {});
// mock a get request with placeholder params
Mock.get('/api/user/:id', (id, params) => {});
// mock a post request
Mock.post('/api/user', data => {});
// response data with sync
Mock.get('/api/user/:id', id => {
return { /* return response data */ };
});
// response data with async, also you can use client db like rxdb/nedb/minimongo/pouchdb
Mock.get('/api/user/:id', id => {
return Promise.resolve({ /* return response dataa */ });
});
// set timeout to return response data
Mock.get('/api/users', () => {
return { /* return response data */ };
}, {timeout: 4000});
// set code to return response data
Mock.get('/api/users', () => {
return { /* return response data */ };
}, {code: 500});