整理 | 夕顏
圖源 | 視覺中國
出品 | CSDN(ID:CSDNnews)
近日,GitHub上一個生成假資料的專案faker.js火了,攀升Trendinging榜單第二,標星目前已超過27.1k,只需要簡單幾步操作,就可以在瀏覽器和node.js中生成大量假資料,
據了解,這已經不是一個新專案了,2017年就已經由一名叫Marak Squires的開源愛好者創建,他自1999年以來就在寫JavaScript產品代碼,2009年開始寫Node.js,除了faker.js之外,他還參與了100多個NPM開源專案,包括在GitHub上同樣受歡迎的獨立的功能服務器專案microcule、微服務平臺hook.io等,
由于在mock資料方面非常好用,faker.js一經推出就受到了很多應用開發者的歡迎,如今faker.js再次出現在我們的眼前,那就來回顧一下這個好用的工具吧,也許在創建資料庫用例資料時,它能幫上忙,
姓名、家庭住址、車輛資訊一鍵生成
按照慣例,先放上專案的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,可以看到,只要點擊“生成新的”,就可以生成關于“這個人”的大量資訊,包括姓名、出生日期、家庭住址、國際、電話、郵箱和密碼、財務資訊,甚至照片,等等,但這個人實際上是并不存在的!
有了fake影像、fake人臉、fake視頻,至此faker.js好像又給了Fake游戲一個新思路,原來資訊資料也能夠大量生成!
看起來很神奇,你是不是也蠢蠢欲動想玩一下?實際上,創建一個faker.js操作并不復雜,感興趣的朋友不妨參考GitHub開源代碼動手試一試,
創建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介面,每個專案下還有子專案:
用Faker.js可以很方便地mock資料,只需要添加nmp依賴就可以了,
另外,faker.js是支持多種語言的,默認設定語言是英語,但可以自己設定,方法也很簡單:
// sets locale to defaker.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 localevar 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主要是一些組織和個人用于生產環境設定,但為了安全起見,還是要在此提醒一句并宣告,本文僅用于技術交流,朋友們且看且珍惜~
更多精彩推薦
?全網銷售額超 2.67 億!德施曼連續 5 年蟬聯雙11全網智能鎖銷冠
?蘋果發布首款 Mac 自研芯片 M1,貫通生態快人一步
?詳解微軟 ALUM:當語言模型遇到對抗訓練
?騰訊竟然是這樣招人的,哈哈哈哈哈
?AI 隱身術,能讓物體在視頻中消失的魔法
?一文教你如何在生產環境中在Kubernetes上部署Jaeger
點分享點點贊點在看
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218827.html
標籤:其他
