Node.js es un tiempo de ejecución de JavaScript que se basa en el motor de JavaScript V8 de Chrome y su entorno de tiempo de ejecución incluye todo lo que necesitamos para ejecutar un programa escrito en JavaScript. Utiliza un modelo de E/S sin bloqueo y controlado por eventos que lo hace más escalable y popular. El no bloqueo simplemente significa que se pueden procesar múltiples requests en paralelo.
Ciclo de vida del programa Node.js: para comprender su ciclo de vida, debe estar familiarizado con el bucle de eventos. Los bucles de eventos son algo que hace que su tarea sea muy rápida y también realiza múltiples tareas. Permite que Node.js realice operaciones de E/S sin bloqueo. Puede obtener más información sobre el bucle de eventos aquí . Cuando ejecuta su archivo de Node usando node app.js, el script comienza a ejecutarse. El analizador lo analizará en lenguaje de máquina, lo que simplemente significa que todas las funciones y variables se registran en una ubicación de memoria. Después de analizar el código, nuestro programa llega al punto en el que no saldrá y ejecutará un número infinito. de veces que es posible gracias al bucle de eventos. Una vez que el bucle de eventos ha comenzado a ejecutarse, se ejecutará mientras los detectores de eventos estén registrados.
Ejemplo: tiene la base de datos y tiene que acceder a los datos de la base de datos o desea insertar algo en una base de datos que simplemente requiere algunas llamadas a las funciones, por lo que cuando las llame tomará una cierta cantidad de tiempo (tal vez nanosegundos o microsegundos, pero tomará algún tiempo), por lo que no es posible para cada solicitud que podamos esperar ese momento en particular y luego pasamos a la siguiente solicitud, por lo que es donde el bucle de eventos entra en escena. La parte de su base de datos se ejecutará en segundo plano y el ciclo de eventos se ejecutará continuamente para que también pueda manejar la necesidad de otra solicitud. Esto se hará en un solo hilo en node.js. También puede salir del ciclo explícitamente usando process.exit() .
Javascript
const http = require('http'); const server = http.createServer(function (req, res) { console.log("server is running"); process.exit(); }); server.listen(8000);
Explicación: en el programa anterior dentro del método createServer() , ha escrito simplemente procesar… salir(), así que tan pronto como ejecute este programa usando la aplicación de Node, su servidor esperará a escuchar su solicitud y una vez que la proporcione la solicitud saldrá del bucle de eventos. Al llamar a esta función, Node.js obligará al proceso actual que se está ejecutando a cancelar lo antes posible y, si se están realizando operaciones asincrónicas, también se cancelarán de inmediato.
Temporizadores: los módulos de temporizador en Node.js consisten en funciones que ayudan a controlar los tiempos de ejecución del código. Incluye los métodos setTimeout(), setImmediate() y setInterval().
- Método setTimeout(): El método setTimeout() se usa para programar la ejecución del código después de una cantidad designada de milisegundos. La función especificada se ejecutará una vez. Podemos usar el método clearTimeout() para evitar que la función se ejecute. El método setTimeout() devuelve el ID que se puede usar en el método clearTimeout().
JavaScript
let str =
'GeeksforGeeks!'
;
setTimeout(
function
() {
return
console.log(str);
}, 5000);
// This console log is executed right away
console.log(
'Executing setTimeout() method'
);
- Método setImmediate(): El método setImmediate() se utiliza para ejecutar código al final del ciclo de bucle de eventos actual. Cualquier función pasada como argumento setImmediate() es una devolución de llamada que se puede ejecutar en la siguiente iteración del bucle de eventos.
JavaScript
let str =
'GeeksforGeeks!'
;
setImmediate(
function
() {
return
console.log(str);
});
// This console log is executed right away
console.log(
'Executing setImmediate() method'
);
- Método setInterval() : El método setInterval() se utiliza para llamar a una función a intervalos específicos (en milisegundos). Se utiliza para ejecutar la función solo una vez después de un período específico.
Podemos usar el método clearInterval() para evitar que la función se ejecute. El método setInterval() devuelve el ID que se puede usar en el método clearInterval().JavaScript
let str =
'GeeksforGeeks!'
;
setInterval(
function
() {
return
console.log(str);
}, 5000);
// This console log is executed right away
console.log(
'Executing setInterval() method'
);
Obtenga más información sobre los temporizadores en Node.js aquí .
process.nextTick(callback) Método: Cada vez que se inicializa una nueva cola de operaciones, podemos considerarla como un nuevo tick. El método process.nextTick() agrega la función de devolución de llamada al inicio de la siguiente cola de eventos. Cabe señalar que, al comienzo del proceso del programa, se llama al método nextTick() por primera vez antes de que se procese el bucle de eventos.
temporizadores–>devoluciones de llamada pendientes–>inactivo, preparar–>conexiones (sondeo, datos, etc.)–>verificar–>cerrar devoluciones de llamada