原文: http://zetcode.com/javascript/fakerjs/

faker.js 教程显示了如何使用 faker.js 库在 JavaScript 中生成伪造数据。

faker.js

faker.js 是用于生成伪造数据的 JavaScript 库。 伪数据在构建和测试我们的应用时很有用。 faker.js 可以为各个领域生成伪造数据,包括地址,商业,公司,日期,财务,图像,随机数或名称。

在本教程中,我们在 Node 应用中使用 faker.js。

安装 faker.js

首先,我们安装 faker.js。

  1. $ node -v
  2. v11.5.0

我们使用 Node 版本 11.5.0。

  1. $ npm init -y

我们启动一个新的 Node 应用。

  1. $ npm i faker

我们使用nmp i faker安装 faker.js 模块。

伪造名称

在第一个示例中,我们伪造了与用户名有关的数据。

names.js

  1. const faker = require('faker');
  2. let firstName = faker.name.firstName();
  3. let lastName = faker.name.lastName();
  4. let jobTitle = faker.name.jobTitle();
  5. let prefix = faker.name.prefix();
  6. let suffix = faker.name.suffix();
  7. let jobArea = faker.name.jobArea();
  8. let phone = faker.phone.phoneNumber();
  9. console.log(`Employee: ${prefix} ${firstName} ${lastName} ${suffix}`);
  10. console.log(`Job title: ${jobTitle}`);
  11. console.log(`Job area: ${jobArea}`);
  12. console.log(`Phone: ${phone}`);

该示例创建一个随机的名字,姓氏,职务,姓名前缀和后缀,职务区域和电话号码。

  1. const faker = require('faker');

我们需要伪造者模块。

  1. let firstName = faker.name.firstName();

我们使用firstName()函数生成了虚假的名字。 该函数位于名称对象中。

  1. $ node names.js
  2. Employee: Mrs. Vernice Abernathy III
  3. Job title: Customer Data Associate
  4. Job area: Program
  5. Phone: 1-516-716-9832

这是一个示例输出。

伪造日期

在第二个示例中,我们生成假日期。

dates.js

  1. const faker = require('faker');
  2. let futureDate = faker.date.future();
  3. let recentDate = faker.date.recent();
  4. let weekday = faker.date.weekday();
  5. console.log(futureDate);
  6. console.log(recentDate);
  7. console.log(weekday);

该示例选择了将来和最近的日期以及某个工作日。

  1. $ node dates.js
  2. 2019-04-13T19:09:43.672Z
  3. 2019-01-06T12:28:29.089Z
  4. Saturday

这是一个示例输出。

伪造随机值

伪造者允许生成随机值,例如整数,uuid 或单词。

random_values.js

  1. const faker = require('faker');
  2. let number = faker.random.number();
  3. console.log(number);
  4. let uuid = faker.random.uuid();
  5. console.log(uuid);
  6. let word = faker.random.word();
  7. console.log(word);
  8. let words = faker.random.words(6);
  9. console.log(words);

该示例生成随机数,uuid,单词和一组六个单词。

  1. $ node random_values.js
  2. 630
  3. 1470356a-1197-4955-b3c1-30302fd1db10
  4. Facilitator
  5. dot-com connect Practical Checking Account Mandatory real-time

这是一个示例输出。

伪造语言环境数据

伪造者在某种程度上支持本地化数据。 请注意,语言环境已完成各种级别。

locale_faker.js

  1. const faker = require('faker/locale/ru');
  2. let firstName = faker.name.firstName();
  3. let lastName = faker.name.lastName();
  4. console.log(`Pаботник: ${firstName} ${lastName}`);
  5. let month = faker.date.month();
  6. let recentDate = faker.date.recent();
  7. let rectentDate = faker.date.weekday();
  8. console.log(month);
  9. console.log(recentDate);
  10. console.log(rectentDate);

该示例使用俄语生成伪造数据。

  1. $ node locale_faker.js
  2. Pаботник: Антон Васильева
  3. май
  4. 2019-01-06T19:24:01.283Z
  5. Пятница

这是一个示例输出。

使用 JSON 服务器提供虚假数据

在下一个示例中,我们生成 JSON 数据并将其写入文件。 该文件由 JSON 服务器提供。

  1. $ npm i g json-server

我们安装json-server模块。

generate_users.js

  1. const faker = require('faker');
  2. const fs = require('fs')
  3. function generateUsers() {
  4. let users = []
  5. for (let id=1; id <= 100; id++) {
  6. let firstName = faker.name.firstName();
  7. let lastName = faker.name.lastName();
  8. let email = faker.internet.email();
  9. users.push({
  10. "id": id,
  11. "first_name": firstName,
  12. "last_name": lastName,
  13. "email": email
  14. });
  15. }
  16. return { "data": users }
  17. }
  18. let dataObj = generateUsers();
  19. fs.writeFileSync('data.json', JSON.stringify(dataObj, null, '\t'));

该示例生成一百个用户,并将它们写入data.json文件。

  1. $ json-server --watch data.json --port 3004

我们启动 JSON 服务器。 服务器提供来自生成的 JSON 文件的数据。

  1. $ curl localhost:3004/data/3/
  2. {
  3. "id": 3,
  4. "first_name": "Sheila",
  5. "last_name": "Bayer",
  6. "email": "Moshe.Walsh32@yahoo.com"
  7. }

我们使用curl工具使用 ID 3 检索用户。

我们展示了如何使用 Node request模块在 JavaScript 中生成 HTTP GET 请求。

  1. $ npm i request

我们安装模块。

get_data.js

  1. const request = require('request');
  2. request('http://localhost:3004/data?_start=4&_end=8', (err, resp, body) => {
  3. if (err) {
  4. console.error('request failed');
  5. console.error(err);
  6. } else {
  7. console.log(body);
  8. }
  9. });

该程序从 JSONServer 获取数据,数据从索引 4(不包括索引)开始,到索引 8(不包括索引)结束。

  1. $ node get_data.js
  2. [
  3. {
  4. "id": 5,
  5. "first_name": "Cheyanne",
  6. "last_name": "Ernser",
  7. "email": "Amber.Spinka62@yahoo.com"
  8. },
  9. {
  10. "id": 6,
  11. "first_name": "Jeff",
  12. "last_name": "Bogisich",
  13. "email": "Bettie.Ritchie60@hotmail.com"
  14. },
  15. {
  16. "id": 7,
  17. "first_name": "Simone",
  18. "last_name": "Zemlak",
  19. "email": "Dorris49@gmail.com"
  20. },
  21. {
  22. "id": 8,
  23. "first_name": "Demond",
  24. "last_name": "Barrows",
  25. "email": "Nestor81@yahoo.com"
  26. }
  27. ]

这是一个示例输出。

Faker CLI

faker-cli是一个节点模块,是faker.js的包装。 它允许从命令行工具生成假数据。

  1. $ npm install -g faker-cli

我们安装faker-cli模块。

  1. $ faker-cli -d future
  2. "2019-07-22T06:37:19.032Z"
  3. $ faker-cli -d recent
  4. "2019-01-06T21:46:50.788Z"
  5. $ faker-cli -n firstName
  6. "Tevin"
  7. $ faker-cli -n lastName
  8. "Sawayn"

我们使用faker-cli程序生成一些虚假数据。

在本教程中,我们使用了 faker.js 在 JavaScript 中生成假数据。

您可能也对以下相关教程感兴趣: Moment.js 教程JSONServer 教程从 JavaScript 中的 URL 读取 JSONJavaScript 贪食蛇教程JQuery 教程Node Sass 教程Lodash 教程