WebFund 2016W: Tutorial 1: Difference between revisions

From Soma-notes
No edit summary
Line 5: Line 5:


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


<source line lang="javascript">
<source line lang="javascript">
Line 29: Line 31:


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


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

Revision as of 02:41, 11 January 2016

This tutorial is not yet finalized.


Code

simplegrep_sync.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 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);