ZetCode

faker.js 教程

最后修改于 2023 年 10 月 18 日

在本文中,我们将展示如何使用 faker.js 库在 JavaScript 中生成假数据。

faker.js

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

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

设置 faker.js

首先,我们安装 faker.js。

$ node -v
v18.2.0

我们使用 Node 版本 18.2.0。

$ npm init -y

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

$ npm install --save-dev @faker-js/faker

我们将 faker.js 模块安装为开发依赖项。

生成假姓名

在第一个示例中,我们生成与用户名相关的假数据。

main.js
import { faker } from '@faker-js/faker';

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

let jobTitle = faker.name.jobTitle();
let prefix = faker.name.prefix(); 
let suffix = faker.name.suffix();
let jobArea = faker.name.jobArea();

let phone = faker.phone.number();

console.log(`Employee: ${prefix} ${firstName} ${lastName} ${suffix}`);
console.log(`Job title: ${jobTitle}`);
console.log(`Job area: ${jobArea}`);
console.log(`Phone: ${phone}`);

该示例创建一个随机的姓氏、名字、职位、名称前缀和后缀、工作领域和电话号码。

import { faker } from '@faker-js/faker';

我们导入 faker 模块。

let firstName = faker.name.firstName();

我们使用 firstName 函数生成一个假的姓氏。 该函数位于 name 对象中。

$ node names.js
Employee: Miss Annabelle Rosenbaum PhD
Job title: Central Usability Officer
Job area: Tactics
Phone: 1-681-585-6744 x028

伪造日期

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

main.js
import { faker } from '@faker-js/faker';

let futureDate = faker.date.future();
let recentDate = faker.date.recent();
let weekday = faker.date.weekday();

console.log(futureDate);
console.log(recentDate);
console.log(weekday);

该示例选取了一个未来和最近的日期以及某个工作日。

$ node main.js 
2023-01-22T16:26:38.376Z
2022-06-23T16:20:01.315Z
Wednesday

伪造随机值

faker 允许生成随机值,例如整数、uuid 或单词。

main.js
import { faker } from '@faker-js/faker';

let number = faker.random.numeric();
console.log(number);

let uuid = faker.datatype.uuid();
console.log(uuid);

let word = faker.random.word();
console.log(word);

let words = faker.random.words(6);
console.log(words);

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

$ node main.js
7
970441be-c5bb-4e7f-84a6-d0556b69bb2a
hacking
Switchable auxiliary Implementation Manors Corporate AI

生成本地化数据

faker 在某种程度上支持本地化数据。 请注意,这些语言环境已完成到不同的级别。

main.js
import { faker } from '@faker-js/faker/locale/ru';

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

console.log(`Pаботник: ${firstName} ${lastName}`);

let month = faker.date.month();
let recentDate = faker.date.recent();
let rectentDate = faker.date.weekday();

console.log(month);
console.log(recentDate);
console.log(rectentDate);

该示例用俄语生成假数据。

$ node main.js
Pаботник: Blaise Sauer
январь
2022-06-24T07:29:27.397Z
Четверг

使用 JSON Server 提供假数据

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

$ npm i g json-server

我们安装 json-server 模块。

main.js
import { faker } from '@faker-js/faker';
import fs from 'fs'

function generateUsers() {

  let users = []

  for (let id=1; id <= 100; id++) {

    let firstName = faker.name.firstName();
    let lastName = faker.name.lastName();
    let email = faker.internet.email();

    users.push({
        "id": id,
        "first_name": firstName,
        "last_name": lastName,
        "email": email
    });
  }

  return { "data": users }
}

let dataObj = generateUsers();

fs.writeFileSync('data.json', JSON.stringify(dataObj, null, '\t'));

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

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

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

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

我们使用 curl 工具检索 Id 为 3 的用户。

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

$ npm i request

我们安装该模块。

get_data.js
import request from 'request';

request('https://:3004/data?_start=4&_end=8', (err, resp, body) => {

    if (err) {
        console.error('request failed');
        console.error(err);
    } else {
        console.log(body);
    }
});

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

$ node get_data.js
[
  {
    "id": 5,
    "first_name": "Cheyanne",
    "last_name": "Ernser",
    "email": "Amber.Spinka62@yahoo.com"
  },
  {
    "id": 6,
    "first_name": "Jeff",
    "last_name": "Bogisich",
    "email": "Bettie.Ritchie60@hotmail.com"
  },
  {
    "id": 7,
    "first_name": "Simone",
    "last_name": "Zemlak",
    "email": "Dorris49@gmail.com"
  },
  {
    "id": 8,
    "first_name": "Demond",
    "last_name": "Barrows",
    "email": "Nestor81@yahoo.com"
  }
]

来源

Faker.js 指南

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

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

查看 所有 JavaScript 教程。