fe-api-mocker
- 一个小工具,主要为方便前端开发过程中mock后台数据
- 可mock返回的延时时间(delay), 状态码(status),头部(headers),响应数据(data)
- 内置mockjs,让mock数据更加灵活高效
- 支持以函数方式返回data
安装fe-api-mocker
$ npm i fe-api-mocker -D
基本使用
1. 定义mock接口,如./mockData.js
默认为 GET 请求,如果是 POST 或者其他请求,请以[method api]方式配置, 如:post /api
module.exports = {
"api/1": {
status: 200,
headers: {
'X-Foo': 'bar'
},
delay: 1000,
data: {
msg: 'response data'
}
},
"api/2": {
data(req) {
return {
role: req.query.username === 'paul' ? 'admin': 'not admin'
}
}
},
"api/3": {
data: {
'list|5-10': [{
'id|+1': 1
}]
}
},
"post api/1": {
data: {
msg: 'response data'
}
},
"post api/2": {
data(req) {
return {
role: req.body.username === 'paul' ? 'admin': 'not admin',
name: req.body.username
}
}
},
}
2. 服务器配置
如果使用基于express的server,如vue-cli, webpack-dev-sever, 需要配置devServer.before
module.exports = {
devServer: {
before(app) {
mock(app, path.resolve(__dirname, './mockData.js'));
}
}
}
如果直接本地跑 express,则配置如下
const mock = require('fe-api-mocker');
const app = require('express')();
mock(app, path.resolve(__dirname, './mockData.js'));
app.listen(3000);
3. 前端请求
fetch('http://localhost:3000/api/2?username=paul')
.then(d => d.json())
.then(d => {
console.log(d)
})