在我们会使用JSON Server之后,虽然我们能够使用json文件数据来模拟后台的数据请求操作,但是我们还往往会出现另一个问题,那就是“巧妇难为无米之炊”,假如说没有大量的数据,有时是很难真实的模拟后端数据的请求操作的,正因为如此,我们才需要让JSON Server来帮助我们生成所需要的大数据。
而这里,我们的JSON Server并非凭空的随机生成任何的毫无意义的大数据,恰恰相反,其生成的数据都是真实存在的,比如说我们下面所要生成的数据就是如此,其是通过在亚马逊网站上抓取真实的用户信息,以此来生成我们所需要的真实数据的。因而该真实数据更具有实际的操作与应用价值。
安装faker和lodash
安装faker与lodash的指令如下:
cnpm install faker lodash
创建generate.js
源码
module.exports = function () {
var faker = require("faker");
var _ = require("lodash");
return {
people:_.times(100,function (n) {
return {
id:n
,name:faker.name.findName()
,avatar:faker.internet.avatar()
}
})
}
};
分析
在上面的代码中,下面的代码块其实是导出对象函数
module.export = function () {
return{
}
};
var faker = require("faker");意思是导入faker依赖,并将其转交给新创建的对象faker;同理var _ = require("lodash");是引入lodash依赖,并将其转交给新创建的对象_。
在上面我们引入的工具依赖中,需要返回一个含有people属性的对象,该值应该是一个数组,或是我们将要返回的数组。而这个数组是由lodash和faker生成。
如果我们想要生成一百条信息,我们应该这么写_.times(100),该意思是用来返回函数100次。这里的参数n是作为循环时的index。
此时我们将返回一个含有id:n的对象,n是前面传入的参数。
其中第一个人的id会是0,接下来会返回一个name属性,值为faker.name.findName()。现在再添加一个avatar属性,值为faker.internet.avatar()。
启动并查看项目
在控制台中输入下面的指令来启动项目:
json-server generate.js
当项目被成功启动后,我们在REST Client的Host/port中输入http://localhost:3000/people,点击运行按钮,即可在Response控制面板中查看到我们所查询的结果,如下所示:
由于上面的信息是真实存在的,所以说我们可以通过该信息来获取用户的头像。比如说在返回的信息中avatar代表的就是用户头像,当我们随机访问其中的一条,比如说:
https://s3.amazonaws.com/uifaces/faces/twitter/rohixx/128.jpg
如果没有被墙,能够访问成功的话,其访问的结果是这样的:
如上所示,我们通过查看元素,确实是可以查看到该用户的头像信息,而该用户的完整信息为:
{
"id": 1,
"name": "Cierra Anderson",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/rohixx/128.jpg"
}
如果我们想要保存上面的100条真实的用户信息,我们需要执行之前提到的命名,也就是说在控制台中执行:
s + 回车