Skip to content

Node.js

A wrapper around VMs like V8/Chakra with built-in modules (fs, http, crypto, zip, ...) providing rich features through easy-to-use asynchronous APIs (no threads). If the built-in modules are not enough, you can build packages for Node.js using C++ or JavaScript depending on what you want. This makes Node a great platform for tools other than being a platform for backend servers. Node.js also ships with debugger and other utilities.

  • Node ships with a reliable package manager (NPM) and it works with the NPM register (hosted at npmjs.org)
  • Node has a reliable module dependency manager (referred to as CommonJS). This is basically the "require" function in Node, combined with the "module" object.

Commands available with installation

  • node
  • npm
  • npx

Modern JavaScript

Scopes
  • Block scope - bleed out to the common namespace, when using var. Example for-loop
  • Function scope - do not bleed out, when using var. Example function
this
  • Regular function cares about who calls it. "this" refers to the caller of the function
  • Arrow functions do not care about who calls them. "this" refers to the scope within. Makes it a great use case for events and listeners because it gives easy access to "this" of the defining environment.
  • In any node module, by default, global "this" is associated with the exports object

Questions

• Can var variable be accessed out of for-loop as well as a function?
• Can let variable be accessed out of for-loop as well as a function?

Frameworks

express.js
nest.js
koa.js
hapi.js
sail.js
partial.js
total.js
fastify.js

source:
https://codebrahma.com/9-best-node-js-frameworks-developers/
https://medium.com/car2godevs/there-are-expressjs-alternatives-590d14c58c1c

Libraries

immutable.js

Installation Path

Node.js - /usr/local/bin/node
NPM     - /usr/local/bin/npm

References

  • http://sourabhbajaj.com/mac-setup/Node.js/
  • https://nodejs.org/dist/latest-v8.x/docs/api/
  • https://nodejs.org/docs/v6.9.2/api/
  • https://nodejs.org/en/docs/guides/

Contributing

https://nodejs.org/en/get-involved/


Last update: February 16, 2023