Node JS - Starting a new project
From Logic Wiki
npm init --yes
installing NodeMon
npm i -g nodemon
install this package to avoid stop - start application on every change and instead of node start application with nodemon
Path
var pathObj = path.parse(__filename);
Template String in ES6
console.log(`Total Memory : ${totalMemory}`;
EventEmitter
const EventEmitter = require('events');
const emitter = new EventEmitter();
//Register a listener
emitter.on('messageLogged', function(){
console.log('Listener called')
})
//Raise an event
emitter.emit('messageLogged');
listener registration must be done before it raised
if we want to pass event arguments we raise like
emitter.emit('messageLogged', {id:1, url:'http://'});
and get it like
emitter.on('messageLogged', function(arg){
Better Usage
logger.js
const EventEmitter = require('events');
class Logger extends EventEmitter{
log(message){
console.log(message);
this.emit('messgeLogged', {id:1, url:'http://'});
}
}
module.exports = Logger;
app.js
const EventEmitter = require('events');
const Logger = require('./logger');
const logger = new Logger();
logger.on('messageLogged', (arg) => {
console.log('Listener called ', arg);
});
logger.log('Message');