JavaScript Random data generator: Faker.js, Chance.js
Blogs20142014-04-18
JavaScript random data generator
I found 2 very useful JavaScript open-sources for ārandom name generatorā:
- Faker.js
generate massive amounts of fake data in Node.js and the browser - http://chancejs.com/
Chance is a minimalist generator of random [1] strings, numbers, etc. to help reduce some monotony particularly while writing automated tests or anywhere else you need anything random.
Thinking about in a testing environment to pre-required a lot of meaningful data records, using these js library to generate and save in No-SQL database such as mongoDB. So we can use these data for testing purpose. I copied some snippets from Faker.js for quick retrieve:
//1. browser:
<script src = "Faker.js" type = "text/javascript"></script>
<script>
// Caitlyn Kerluke
var randomName = Faker.Name.findName();
// Rusty@arne.info
var randomEmail = Faker.Internet.email();
// random contact card containing many properties
var randomCard = Faker.Helpers.createCard();
</script>
//2. node.js:
var Faker = require('./Faker');
// Rowan Nikolaus
var randomName = Faker.Name.findName();
// Kassandra.Haley@erich.biz
var randomEmail = Faker.Internet.email();
// random contact card containing many properties
var randomCard = Faker.Helpers.createCard();The following is my js script to operate with Mongodb:
'use strict';
var Faker = require('./Faker');
var _ = require('underscore');
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/tests', {db: { safe: true }});
var random_schema = new mongoose.Schema({
userName: String,
email: String,
phoneNumber: String,
streetAddress: String,
city: String,
lastName: String,
firstName: String,
zipCode: String,
latitude: String,
longitude: String,
updated_at: { type: Date, default: Date.now },
active: { type: Boolean, default: true }
});
var Random = mongoose.model('Random', random_schema);
for(var i=0; i<20; i++) {
var rdm = new Random();
rdm.userName = Faker.Name.findName();
rdm.email = Faker.Internet.email();
rdm.phoneNumber = Faker.PhoneNumber.phoneNumber;
rdm.streetAddress = Faker.Address.streetName;
rdm.city = Faker.Address.city;
rdm.lastName = Faker.Name.lastName;
rdm.firstName = Faker.Name.firstName;
rdm.zipCode = Faker.Address.zipCode;
rdm.latitude = Faker.Address.latitude;
rdm.longitude = Faker.Address.longitude;
...
rdm.save(obj);
}
mongoose.disconnect();