- A platform which allows us to run Javascript on a computer/server.
- Runs on V8 engine and uses non-blocking code (very fast).
HTTP
var http = require('http');
var server = http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World');
})
server.listen(3000, '127.0.0.1');
console.log("Listening on port 3000");
Modules
// stuff.js
function counter(arr) {
return "This array have " + arr.length + " values";
}
var adder = function(a,b) {
return `The sum is ${a+b}`;
}
module.exports = {
counter,
adder
};
//app.js
var stuff = require("./stuff");
console.log(stuff.counter([1,2,3]));
console.log(stuff.adder(4,5));
File Handling
var fs = require('fs');
//sync
var readMe = fs.readFileSync('readMe.txt', 'utf8');
fs.writeFileSync('writeMe.txt', readMe);
//async
fs.readFile('readMe.txt', 'utf8', function(err, data) {
fs.writeFile('writeMe.txt', data);
});
fs.unlink('writeMe.txt'); //delete a file
fs.mkdir('stuff', function() {
fs.readFile('readMe.txt', 'utf8', function(err, data) {
fs.writeFile('./stuff/writeMe.txt', data);
})
});
fs.rmdir('stuff'); // remove a empty directory
Serving HTML and JSON data
var http = require('http');
var fs = require('fs');
var myServer = http.createServer(function(req, res) {
res.writeHead(200, {'content-type': 'application/json'});
// serving html data
var readStream = fs.createReadStream(__dirname+'/index.html', 'utf8');
readStream.pipe(res);
// serving json data
var dummy = {
name:'dummyName',
age:25,
profession:'web developer'
}
res.end(JSON.stringify(dummy));
})
myServer.listen(3000, '127.0.0.1');
Streams, Buffer and Pipe
var fs = require('fs');
var readStream = fs.createReadStream(__dirname + '/lorem.txt', 'utf8');
var writeStream = fs.createWriteStream(__dirname + '/lorem2.txt');
readStream.on('data', function(chunk){
console.log('new chunk!!!');
writeStream.write(chunk);
});
// same as above
readStream.pipe(writeStream);