Grunt

Grunt

Grunt is The JavaScript Task Runner. link(Grunt).

Work with express
In express passport sample, grunt is used to add data into mongodb(seed)

Install

npm package

npm install -g grunt-cli

Check installation

grunt --version
grunt --help

Example in Express

Add grunt package in your project.

"devDependencies": {
    "grunt": "*"
}

I added after dependencies. dev means development.

I found good sample in passport-local
passport-local/examples/passport-local has Grunt example.
Grunt is used to add data into mongodb.
Prepare Gruntfile.js in your project root.
registerTask is key for task.

I use grunt task to populate test data to test db related work.
That is useful.

Sample(Gruntfile.js)

var db = require('./config/dbconfig');  // mongo connection 
var userdb = require('./config/user');  // database schema

module.exports = function(grunt) {

  // Example 
  grunt.registerTask('addUserOne','Add users to the database', function() {
        grunt.task.run('addUser:ito:atmarkplant@gmail.com:123455');
  });

  grunt.registerTask('addUser', 'Add users', function(name, email, password){
        var user = new userdb.userModel({
            name: name,
            email: email,
            password: password,
        });

        var done = this.async();
        user.save(function(err){
            if (err) {
                console.log('Error: ' + err);
                done(false);
            }
            else {
                console.log('saved user: ' + user.email);
                done();
            }
        });
    });

    grunt.registerTask('cleanUser', 'Clean user data', function() {
        var done = this.async();
        userdb.userModel.remove({}, function(err){
            if (err) {
                console.log(err);
                done(false);
            }
            else {
                console.log('Remove all users');
                done();
            }
        });
    });

});

I added user data population and delete operation.

Run grunt task on your project root.

grunt taskname

taskname is your task name in express
“addUserOne” is grunt task

Warning

Send mail using aws doesn’t work correctly.