node-js-wallpaper

Some Useful Node.js Internal Modules

1. OS

JavaScript in Web browser cannot get the information about Operating System (OS) but node.js can

const os = require('os');

console.log('operating system information -------------');
console.log('os.arch()', os.arch()); // x64
console.log('os.platform():', os.platform()); // win32
console.log('os.type():', os.type()); // Windows_NT
console.log('os.uptime():', os.uptime()); // 53354.5432871
console.log('os.hostname():', os.hostname()); // DESKTOP-CPLOU
console.log('os.release():', os.release()); // 10.0.15063

console.log('path -------------');
console.log('os.homedir():', os.homedir()); // C:\Users\cplou
console.log('os.tmpdir()', os.tmpdir()); // C:\Users\cplou\AppData\Local\Temp

console.log('memory information -------------');
console.log('os.freemem():', os.freemem()); // 9122930688
console.log('os.totalmem():', os.totalmem()); // 17060175872
  • os.type() : Shows the Operating Systems type
  • os.uptime() : Shows pc runtime after last reboot
  • os.hostname() : Shows the computer name
  • os.release() : Shows OS version
  • os.homedir() : Shows home directory path
  • os.freemem () : Shows available RAM
  • os.totalmem() : Show entire memory capacity

2. Path

It helps manipulating folder & file path

  • Path module is very useful because every Operating system has different path delimiter
  • Windows type & POSIX type
  • Window type : separated by ₩ (i.e., C:₩Users₩cplou)
  • POSIX type is used in Unix based Operating system such as macOS and Linux
  • POSIX type : separated by (i.e., /home/cplou)
const path = require('path');

const string = __filename;

// path.sep: /
console.log('path.sep:', path.sep); 
// path.delimiter: :
console.log('path.delimiter:', path.delimiter); 
console.log('------');
// path.dirname(): /Users/gp/Desktop/node_module
console.log('path.dirname():', path.dirname(string));
// path.extname(): .js
console.log('path.extname():', path.extname(string));
// path.basename(): path.js
console.log('path.basename():', path.basename(string));
// path.basename(): path
console.log('path.basename():', path.basename(string, path.extname(string)));
console.log('------');
// path.parse() { root: '/',
//   dir: '/Users/gp/Desktop/node_module',
//   base: 'path.js',
//   ext: '.js',
//   name: 'path' }
console.log('path.parse()', path.parse(string));
// path.format(): C:\users\cplou/pathjs
console.log('path.format():', path.format({
    dir: 'C:\\users\\cplou',
    name: 'path',
    ext: 'js',
}));
// path.normalize(): C:/users\\cplou\path.js
console.log('path.normalize():', path.normalize('C://users\\\\cplou\\\path.js'));
console.log('------');
// path.isAbsolute(): false
console.log('path.isAbsolute():', path.isAbsolute('C:\\'));
// path.isAbsolute(): false
console.log('path.isAbsolute():', path.isAbsolute('./home'));
console.log('------');
// path.relative(): ../C:\
console.log('path.relative():', path.relative('C:\\users\\cplou\\path.js', 'C:\\'));
// path.join(): /Users/gp/Desktop/users/cplou
console.log('path.join():', path.join(__dirname, '..', '..', '/users', '.', '/', 'cplou'));
// path.resolve(): /cplou
console.log('path.resolve():', path.resolve(__dirname, '..', 'users', '.', '/cplou'));
  • __filename__dirname represents current file and current folder path respectively
  • path:sep : path delimiter (i.e., Windows : \ , POSIX : / )
  • path.delimiter : env variable delimiter (i.e., Windows : ; , POSIX :)
  • path.dirname(path) : file Path
  • path.extname(path) : file extension
  • path.basename(path, extension) : file name
  • path.parse(path) : separate the file path into root, dir, base, ext, name
  • path.format(object) : path.parse() object to file path
  • path.noramlize(path) : remove duplicates / \
  • path.isAbsolute(path) : return boolean tells whether the file path is absolute path or relative path
  • path.join(path, …) : combine into a path
  • path.resolve(path, …) : combine into a path
difference between path.join & path.resolve
--
- path.resolve : absolute path
- path.join : relative path
path.join('/a', '/b', 'c'); // /a/b/c
path.resolve('/a', '/b', 'c'); // /b/c

3. Url

It helps manipulate Internet address (url)

  • They are two types of url manipulation 1) WHATWG url 2) traditional node url
const url = require('url');

const URL = url.URL;
const myURL = new URL('https://christosploutarchou.com/posts/nodejs/#authentication-vs-authorization');
console.log('new URL():', myURL);
// new URL(): URL {
//     href:
//      'https://christosploutarchou.com/posts/nodejs/#authentication-vs-authorization',
//     origin: 'https://christosploutarchou.com',
//     protocol: 'https:',
//     username: '',
//     password: '',
//     host: 'christosploutarchou.com,
//     hostname: 'https://christosploutarchou.com',
//     port: '',
//     pathname: '/posts/nodejs/',
//     search: '',
//     searchParams: URLSearchParams {},
//     hash: '#authentication-vs-authorization' }

console.log('url.format():', url.format(myURL));
// url.format(): https://christosploutarchou.com/posts/nodejs/#authentication-vs-authorization
console.log('--------');
const parsedUrl = url.parse('https://christosploutarchou.com/posts/nodejs/#authentication-vs-authorization');
console.log('url.parse():', parsedUrl);
// url.parse(): Url {
//     protocol: 'https:',
//     slashes: true,
//     auth: null,
//     host: 'christosploutarchou.com',
//     port: null,
//     hostname: https://christosploutarchou.com',
//     hash: '#authentication-vs-authorization',
//     search: null,
//     query: null,
//     pathname: '/posts/nodejs//',
//     path: '/posts/nodejs/',
//     href:
//      'https://christosploutarchou.com/posts/nodejs/#authentication-vs-authorization'}
console.log('url.format():', url.format(parsedUrl));
// url.format():https://christosploutarchou.com/posts/nodejs/#authentication-vs-authorization
  • url.parse(address) : separate url
  • url.format(object) : reassemble url

4. querystring

Convert searchParams of url into an object

const url = require('url');
const querystring = require('querystring');

const parsedUrl = url.parse('http://www.google.com/?page=3&limit=10&category=nodejs&category=javascript');
const query = querystring.parse(parsedUrl.query);
console.log('querystring.parse():', query);
// querystring.parse(): [Object: null prototype] { page: '3', limit: '10', category:
// [ 'nodejs', 'javascript' ] }
console.log('querystring.stringify():', querystring.stringify(query));
// querystring.stringify(): page=3&limit=10&category=nodejs&category=javascript

Leave a Comment