mock数据写在json文件中,proxyTable 里将接口代理到具体mock数据json文件上。
具体方法: vue
mock
文件夹build/dev-server.js
中添加以下代码npm run dev
启动后,能够经过 http://localhost:8080/mock/db.json 访问数据,proxyTable对应设置代理便可(代理设置方法与解决跨域方法类似)git
JSON Server 是一个建立伪RESTful服务器的工具,具体使用方法能够看官方文档,这里直接讲在vue-cli 中的用法。github
$ npm install -g json-server
mock
文件夹mock
文件夹下添加 db.json
文件,内容以下{ "posts": [ { "id": 1, "title": "json-server", "author": "typicode" } ], "comments": [ { "id": 1, "body": "some comment", "postId": 1 } ], "profile": { "name": "typicode" } }
package.json
添加命令 "mock": "json-server --watch mock/db.json", "mockdev": "npm run mock & npm run dev"
$ npm run mock
命令 运行 mock server
访问 http://localhost:3000/
发现 db.json
下第一级 json 对象被解析成为可访问路径vue-cli
GET请求具体路径 如:http://localhost:3000/posts 可获取数据express
若是须要大量的伪数据,手动构造比较费时费力,可使用 faker.js 批量生成。faker.js 的具体使用参见官方文档,这里作一个示例。npm
$ cnpm install faker -G
全局安装 fakermock
目录下建立 faker-data.js
,内容以下 module.exports = function () { var faker = require("faker"); faker.locale = "zh_CN"; var _ = require("lodash"); return { people: _.times(100, function (n) { return { id: n, name: faker.name.findName(), avatar: faker.internet.avatar() } }), address: _.times(100, function (n) { return { id: faker.random.uuid(), city: faker.address.city(), county: faker.address.county() } }) } }
$ json-server mock/faker-data.js
在 json server 中使用 fakerjson server 使用 RESTful 架构,GET请求能够获取数据,POST 请求则是添加数据。
在开发过程当中,有时候想直接模拟获取POST请求返回结果,能够添加 express 中间件 将POST请求转为GET请求。json
mock
目录下建立 post-to-get.js
,内容以下 module.exports = function (req, res, next) { req.method = "GET"; next(); }
--m mock/post-to-get.js
"mock": "json-server --watch mock/db.json --m mock/post-to-get.js",
从新启动服务,POST请求就被转换为GET请求了跨域
其余需求也能够经过添加不一样的中间件实现。服务器
在 config/index.js
的 proxyTable
将请求映射到 http://localhost:3000restful
代码中添加请求以测试效果
$ npm run mockdev
启动带mock 数据的本地服务
结果以下:
做者:萝卜粥_Carrot连接:http://www.jianshu.com/p/ccd53488a61b來源:简书著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。