callback

Node está construido para ser asincrónico en todo lo que hace. En esta vista, una devolución de llamada es un equivalente asincrónico de una función que se llama después de que se completa una tarea determinada. Alternativamente, se puede definir como una función que se pasa a otra función para que esta última pueda llamarla al completar una tarea determinada. Permite que otros programas sigan ejecutándose, evitando así el bloqueo.


event loop

El event loop es el que se encarga de implementar las operaciones asíncronas o el non-blocking. El event loop corre en el único hilo que existe en Node y como mencionamos anteriormente, al bloquear el único hilo de node, estamos bloqueando el event loop.
event emitter

Buffers

Los flujos funcionan con un concepto llamado búfer .
UNA buffer es una memoria temporal que una secuencia toma para almacenar algunos datos hasta que se consumen. En una secuencia, el tamaño del búfer lo decide la highWatermark propiedad de la instancia de la secuencia, que es un número que indica el tamaño del búfer en bytes.
Una memoria intermedia en Node funciona de forma predeterminada en Stringy Buffer. También podemos hacer que la memoria intermedia funcione en objetos JavaScript. Para hacerlo, necesitamos establecer la propiedad objectMode en el objeto de flujo en true.

Streams

significa: corriente, arroyo, flujo, torrente o chorro. Por tanto, un stream, en el mundo de la programación, no deja de ser una forma de obtener o depositar datos binarios de una fuente a otra en un flujo continuado. 

los flujos se utilizan para leer desde la entrada o escribir en la salida de forma secuencial. La mayoría de las veces, las transmisiones se utilizan para leer o escribir desde una fuente continua o comparativamente grande.


File system

para manejar operaciones de archivos como crear, leer, eliminar, etc., Node.js proporciona un módulo incorporado llamado FS (Sistema de archivos). Node.js brinda la funcionalidad de E / S de archivos al proporcionar envoltorios alrededor de las funciones POSIX estándar. Todas las operaciones del sistema de archivos pueden tener formas sincrónicas y asincrónicas según los requisitos del usuario.
Para utilizar este módulo del sistema de archivos, utilice el método require ():
var fs = require ('fs');