mocker:模仿者,模拟第三方返回 ,前后端分离开发时,前端可以通过mocker来模仿后端数据的返回,以react+webpack项目为例:
首先需要install webpack-api-mocker 然后在 webpack.config.js文件中引入,同时引入已经写好的mocker文件(稍后展示) :
const apiMocker = require('webpack-api-mocker');
const mocker = require('./mocker/mocker');
在webpack.config.js中的devServer中加入如下代码:
before(app){
apiMocker(app,path.resolve('./mocker/mocker.js')),{
changeHost: true,
}
}
mocker.js文件如下:
const proxy = {
['GET /demo']: {id: 1, username: 'kenny', sex: 6 },
'GET /api/user/list': [
{id: 1, username: 'kenny', sex: 6 },
{id: 2, username: 'kenny', sex: 6 }
],
'POST /api/login/account': (req, res) => {
const { password, username } = req.body;
if (password === '888888' && username === 'admin') {
return res.send({
status: 'ok',
code: 0,
token: "sdfsdfsdfdsf",
data: {id: 1, username: 'kenny', sex: 6 }
});
} else {
return res.send({status: 'error', code: 403 });
}
},
'DELETE /api/user/:id': (req, res) => {
console.log('---->', req.body)
console.log('---->', req.params.id)
res.send({ status: 'ok', message: '删除成功!' });
}
}
module.exports = proxy;
调用如下:
Axios.get('/demo/api/user/list').then(res=>{
console.log(res.data);
})
即可返回 morker.js中相应数据。