faker.js 登 GitHub 趋势榜标星 27.1k,可大批量生成假数据!

faker.js是一个流行的JavaScript库,用于在浏览器和Node.js中生成假数据,适用于创建数据库测试用例。该项目由Marak Squires创建,包含丰富的API,如姓名、地址、电话、邮箱等信息的生成。只需简单几步,即可生成逼真的假数据,且支持多种语言。项目适用于开发者的数据mock需求,同时也提醒用户注意安全使用。

b3452db7b4cd2c9320af8f29676d650b.gif

1ed2b23c0c49eaea4f6f69b1d8afb084.jpeg

整理 | 夕颜

图源 | 视觉中国

出品 | 优快云(ID:优快云news)

近日,GitHub上一个生成假数据的项目faker.js火了,攀升Trendinging榜单第二,标星目前已超过27.1k。只需要简单几步操作,就可以在浏览器和node.js中生成大量假数据。

       ff334e3b8b0fd27308fb2400aa5618de.png

据了解,这已经不是一个新项目了,2017年就已经由一名叫Marak Squires的开源爱好者创建,他自1999年以来就在写JavaScript产品代码,2009年开始写Node.js。除了faker.js之外,他还参与了100多个NPM开源项目,包括在GitHub上同样受欢迎的独立的功能服务器项目microcule、微服务平台hook.io等。

由于在mock数据方面非常好用,faker.js一经推出就受到了很多应用开发者的欢迎。如今faker.js再次出现在我们的眼前,那就来回顾一下这个好用的工具吧,也许在创建数据库用例数据时,它能帮上忙。

a46668028170af1bd6ba8395a7dd8d4a.png

姓名、家庭住址、车辆信息一键生成

按照惯例,先放上项目的GitHub地址:https://github.com/marak/faker.js/

faker.js是个很棒的nede模块,用来mock数据。包含一个超级有用的生成器方法Faker.fake,用于胡须字符串格式与faker API组合。

比如:


 
console.log(faker.fake("{{name.lastName}{{name.firstName{{name.suffix}}"));
// outputs: "Marks, Dean Sr."

这个操作可以将name.lastName(),name.firstName()和name.suffix()的值插入格式字符串。

先看一下demo,可以看到,只要点击“生成新的”,就可以生成关于“这个人”的大量信息,包括姓名、出生日期、家庭住址、国际、电话、邮箱和密码、财务信息,甚至照片,等等。但这个人实际上是并不存在的!

  5160c71eb347881b0a79b40b4d923319.png              9ae9c2d5c17c2407b0596f7b4f92b04a.png      

       0192368b57bc4448b11d47838d5abe72.png              d5c5ce6ecf01c33860741703da6e730c.png      

有了fake图像、fake人脸、fake视频,至此faker.js好像又给了Fake游戏一个新思路,原来信息数据也能够大量生成!

看起来很神奇,你是不是也蠢蠢欲动想玩一下?实际上,创建一个faker.js操作并不复杂,感兴趣的朋友不妨参考GitHub开源代码动手试一试。

72c2a9456a290a56d403d006c852f57f.png

创建faker.js的方法

  • 浏览器

Faker.js的好处之一,是不仅可以使用在服务器端的JavaScript,还可以应用在浏览器端的JavaScript,代码如下:


 
<script src = "faker.js" type = "text/javascript"></script>
    <script>
      var randomName = faker.name.findName(); // Caitlyn Kerluke
      var randomEmail = faker.internet.email(); // Rusty@arne.info
      var randomCard = faker.helpers.createCard(); // random contact card containing many properties
</script>
  • Node.js


 
var faker = require('faker');




    var randomName = faker.name.findName(); // Rowan Nikolaus
    var randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz
    var randomCard = faker.helpers.createCard(); // random contact card containing many properties
  • API

Faker.js有自己的API,并且功能非常丰富。

    • JSDoc API Browser

http://marak.github.io/faker.js/

    • 声明接口

      • 地址

        • 邮政编码

        • 州邮政编码

        • 城市前缀

        • 城市后缀

        • 街道名称

        • 街道地址

        • 街道后缀

        • 街道前缀

        • 其他地址

        • 国家

        • 国家代码

        • 州的缩写

        • 纬度

        • 经度

        • 方向

        • 基数方向

        • 顺序方向

        • 附近的GPS坐标

        • 时区

      • 商业

        • 颜色

        • 部门

        • 产品名称

        • 价钱

        • 产品形容词

        • 产品材质

        • 产品

        • 产品描述

以及公司、数据库、日期、财务状况、git、hacker、helper、图像、网络、音乐、姓名等API接口,每个项目下还有子项目:

       7f6feed193403bca3af732b449a1c247.png              b9f3c07aebafbf160d92130c2e6c0a90.png       

       6521058d8f5b3b1b3ddb1bef22f8ce06.png              696970cecf74790abfe3356071145849.png              f18d307cf112bcbee14be15b1c6b8e0d.png              c588590227492bcca7157b1fb5591364.png      

用Faker.js可以很方便地mock数据,只需要添加nmp依赖就可以了。

另外,faker.js是支持多种语言的,默认设置语言是英语,但可以自己设置,方法也很简单:


 
// sets locale to de
faker.locale = "de";
  • az

  • ar

  • cz

  • de

  • de_AT

  • de_CH

  • en

  • en_AU

  • en_AU_ocker

  • en_BORK

  • en_CA

  • en_GB

  • en_IE

  • en_IND

  • en_US

  • en_ZA

  • es

  • es_MX

  • fa

...

  • 本地化包

faker.js支持语言环境的增量加载。

默认情况下,要求faker包括所有语言环境数据。

在生产环境中,你可能只想用一组特定语言环境的数据:


 
// loads only de locale
var faker = require('faker/locale/de');
  • 设置随机种子

如果想要一致的结果,你可以自己设置种子:


 
faker.seed(123);


var firstRandom = faker.random.number();
// Setting the seed again resets the sequence.
faker.seed(123);


var secondRandom = faker.random.number();


console.log(firstRandom === secondRando

你可以使用gulp进行自动化创建过程。每个构建操作都是一个单独的任务,可以独立运行。

浏览器绑定

npm run browser

创建JSDocs

JSDOC v3 HTML API documentation

npm run jsdoc

创建ReadMe

faker.js的ReadMe.md文件是自动生成的,不能直接修改。如果要修改,在./build/src/docs.md中进行对ReadMe.md的所有更新,再运行脚本。

npm run readme

项目发起人表示,这个项目一般来说每月会进行一次或大或小的版本更新,并按紧要程度尽快修复bug,对项目感兴趣的人,可以持续关注下代码更新:https://github.com/marak/faker.js/

最后,用这种方法可以生成大量的假数据,虽然项目发起人称,Node.js主要是一些组织和个人用于生产环境设置,但为了安全起见,还是要在此提醒一句并声明,本文仅用于技术交流,朋友们且看且珍惜~

e85dd705173e3948a0d60262d307d720.png5612451cd174bf82610df94141ebfe2f.png


 

 
更多精彩推荐

 

 

 

 

全网销售额超 2.67 亿!德施曼连续 5 年蝉联双11全网智能锁销冠


 

 
☞苹果发布首款 Mac 自研芯片 M1,贯通生态快人一步

详解微软 ALUM:当语言模型遇到对抗训练


 

 

 
☞腾讯竟然是这样招人的,哈哈哈哈哈

AI 隐身术,能让物体在视频中消失的魔法


 

 

 
☞一文教你如何在生产环境中在Kubernetes上部署Jaeger
点分享点点赞点在看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值