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 模块安装为开发依赖项。
生成假姓名
在第一个示例中,我们生成与用户名相关的假数据。
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
伪造日期
在第二个示例中,我们生成假日期。
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 或单词。
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 在某种程度上支持本地化数据。 请注意,这些语言环境已完成到不同的级别。
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 模块。
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
我们安装该模块。
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 在 JavaScript 中生成了假数据。