本文作者:Aman Mittal
編譯:鬍子大哈翻譯原文:huziketang.com/blog/posts/…
英文連線:How to Mock Data for Node.js Applications using Faker.js
轉載請註明出處,保留原文連結以及作者資訊
當我們開發一個應用的時候,通常都不想耗過多的精力在資料上。建立資料庫並且往資料庫裡塞用例資料這件事情,會使我很煩躁。我寧願花更多的時間在 RESTful API 和如何構建前端應用上。
但是這並不是說我不在意資料庫中資料的組織,對於資料的收集、整理有一個整體的規劃還是很重要的。這方面工作完成以後,在你開發 API 的時候對於要解決什麼問題和如何解決這個問題就變得非常清晰了。在我最近的工作中,我要建立一個客戶端電子商務網站原型,我發現這種情況我以前也遇到過,我需要在截止日期之前,提交一個客戶端所需要的儘可能檢測完全的原型系統。在確定了我資料庫結構以後,我查了一下解決方案,發現了一個針對 mock 資料非常好的解決方案:Faker.js。
初識 Faker.js
這是一個很棒的 node 模組,用來 mock 資料。Faker 有自己的 API,而且功能非常豐富,這一切都要歸功於發明它的人 Marak 。它幾乎可以覆蓋到任何你想用的用例,在 Github 上的文件也可以幫你分分鐘熟悉它的用法。
現在來看一下我需要用的測試用例——一個使用者資訊。
- 姓名
- 網站
- 地址
- 個性簽名
- 頭像
const faker = require('faker')
const User = {
name: faker.name.findName(),
email: faker.internet.email(),
website: faker.internet.url(),
address: faker.address.streetAddress() + faker.address.city() + faker.address.country(),
bio: faker.lorem.sentences(),
image: faker.image.avatar()
}
module.exports = User複製程式碼
上圖就是結果了,用 faker.js 很方便地可以 mock 資料,只需要新增 npm 依賴就行了:
npm install faker --save複製程式碼
Faker.js 資料
Faker.js 能產生的資料如下:
- 地址
- 商業資訊
- 公司
- 日期
- 金融
- 黑客
- 助手
- 圖片
- 網路
- 亂數假文
- 名字
- 電話
- 隨機數
- 系統
上面每一個專案裡面都有很多子專案,文件中有詳細說明。
另外一個我很喜歡 Faker 的原因是,它不僅可以使用在服務端的 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>複製程式碼
這些 API 可以很快地開發 JavaScript / Node.js 應用原型。不僅如此,在開發 RESTful API 的時候,還可以很容易地 mock TDD / BDD 測試。
完整的原始碼,在這個 Github 庫中可以看到。
如果本文對你有幫助,歡迎關注我的專欄-前端大哈,定期釋出高質量前端文章。
我最近正在寫一本《React.js 小書》,對 React.js 感興趣的童鞋,歡迎指點。