Skip to content

Instantly share code, notes, and snippets.

@cavedave
Last active December 31, 2015 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cavedave/8041830 to your computer and use it in GitHub Desktop.
Save cavedave/8041830 to your computer and use it in GitHub Desktop.
Hands on node by Pedro Teixeira exercises. These are the Buffer exercises the first set. Emitters the second.
/*
Buffers
Exercise 1
Create buffer 100 bytes
ill it with 0 to 99
*/
var buffer1 = new Buffer(100);
for(var i=0; i<buffer1.length;i++){
buffer1[i]=i;
}
console.log(buffer1);
/*
Exercise 2
Create buffer 100 bytes
ill it with 0 to 99
then slice buffer with bytes 40 t0 60
*/
var buffer1 = new Buffer(100);
for(var i=0; i<buffer1.length;i++){
buffer1[i]=i;
}
var buffer2 = new Buffer(20);
buffer2 = buffer1.slice(40,60);
console.log(buffer1);
console.log(buffer2);
/*
Buffers
Exercise 3
Create buffer 100 bytes
ill it with 0 to 99
then create new buffer and copy bytes
40 to 60 of first beffer into it
*/
var buffer1 = new Buffer(100);
var buffer2 = new Buffer(20);
for(var i=0; i<buffer1.length;i++){
buffer1[i]=i;
}
buffer1.copy(buffer2, 0, 40,60);
console.log(buffer2);
/*
Emitters
Exercise 1
Build a pseudo-class named “Ticker” that emits a “tick” event every 1 second.
*/
var EventEmitter=require('events').EventEmitter, util = require('util');
//HereistheMyClassconstructor:
var Ticker=function(){
var self = this;
setInterval(function() {
self.emit("tick");
console.log('tick');
}, 1000);
};
util.inherits(Ticker,EventEmitter);
var tick = new Ticker();
/*
Emmiters
Exercise 2
Build a script that instantiates one Ticker and bind to the “tick” event, printing “TICK” every time it gets one.
*/
var EventEmitter=require('events').EventEmitter, util = require('util');
//HereistheMyClassconstructor:
var Ticker=function(){
var self = this;
setInterval(function() {
self.emit("tick");
// console.log('tick');
}, 1000);
};
util.inherits(Ticker,EventEmitter);
var tick = new Ticker();
tick.on('tick',function(){
console.log('TICK');
});
/*
File System
Exercise 1
Having a file named a.txt, print the size of that files in bytes.
*/
var fs=require('fs');
fs.stat(__dirname+'/a.txt',function(err,stats){
if (err) {
console.log(err.message);
return;
}
console.log(stats.size);
});
/*
File System
Exercise 2
Having a file named a.txt, print bytes 10 to 14.
*/
var fs=require('fs');
fs.open(__dirname+'/a.txt','r',function(err,fd){
if (err) throw err;
var readBuffer = new Buffer(1024),
bufferOffset = 0,
bufferLength = 4;
filePosition = 10;
fs.read(fd, readBuffer, bufferOffset, bufferLength, filePosition, function(err, readBytes) {
if (err) throw err;
console.log('just read ' + readBytes + ' bytes'); if (readBytes > 0) {
console.log(readBuffer.slice(0, readBytes));
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment