• Blogs (9)
    • šŸ“± 236 - 992 - 3846

      šŸ“§ jxjwilliam@gmail.com

    • Version: ā€šŸš€ 1.1.0
  • 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();