Difference between revisions of "WebFund 2016W: Tutorial 1"

From Soma-notes
Jump to navigation Jump to search
Line 6: Line 6:
===simplegrep_sync.js===
===simplegrep_sync.js===


Downloadable version [http://homeostasis.scs.carleton.ca/~soma/webfund-2016w/code/simplegrep_sync.js is here].
[http://homeostasis.scs.carleton.ca/~soma/webfund-2016w/code/simplegrep_sync.js Downloadable version].


<source line lang="javascript">
<source line lang="javascript">

Revision as of 22:41, 10 January 2016

This tutorial is not yet finalized.


Code

simplegrep_sync.js

Downloadable version.

var fs = require('fs');

if (process.argv.length < 4) {
    console.error('Not enough parameters given. Try this: ' +
                  '"node findinfile_sync term filename.txt"'); 
    process.exit(1);
}

var searchterm = process.argv[2];
var filename = process.argv[3];

var rawContents = fs.readFileSync(filename, 'utf-8');
var lines = rawContents.split('\n');

for (i = 0; i < lines.length; i++) {
    if (lines[i].indexOf(searchterm) > -1) {
        console.log(lines[i]);
    }
}

simplegrep_async.js

Downloadable version is here.

var fs = require('fs');

if (process.argv.length < 4) {
    console.error('Not enough parameters given. Try this: ' +
                  '"node findinfile_sync term filename.txt"'); 
    process.exit(1);
}

var searchterm = process.argv[2];
var filename = process.argv[3];

var returnMatches = function(err, rawContents) {

    var lines = rawContents.split('\n');

    lines.forEach(function(theLine) {
        if (theLine.indexOf(searchterm) > -1) {
            console.log(theLine);
        }
    });
}

fs.readFile(filename, 'utf-8', returnMatches);