Vista previa del material en texto
Preguntas frecuentes sobre Node parte 3 1. ¿Qué es el paquete `npm`? El paquete `npm` es el gestor de paquetes para Node.js que permite a los desarrolladores instalar, actualizar y administrar las dependencias de un proyecto. También es un repositorio público que contiene miles de paquetes y módulos de código JavaScript disponibles para ser utilizados en proyectos de Node.js. 2. ¿Cuál es la diferencia entre `npm` y `npx`? `npm` es el gestor de paquetes de Node.js que se utiliza para instalar paquetes globalmente o localmente en un proyecto. `npx` es una herramienta que viene incluida con `npm` a partir de la versión 5.2.0, y se utiliza para ejecutar paquetes directamente desde el registro de `npm` sin necesidad de instalarlos localmente. 3. ¿Qué es un middleware en Node.js? En el contexto de Node.js, un middleware es una función que se ejecuta entre la solicitud del cliente y la respuesta del servidor. Los middlewares se utilizan para realizar tareas como autenticación, autorización, registro de solicitudes, manejo de errores, entre otras, en aplicaciones web construidas con frameworks como Express.js. 4. ¿Qué es una Promesa en JavaScript? Una Promesa es un objeto en JavaScript que representa el resultado eventual (éxito o fracaso) de una operación asincrónica y permite trabajar con ella de manera más legible y estructurada. Las Promesas se utilizan para manejar operaciones asíncronas en lugar de usar callbacks anidados. 5. ¿Qué es una devolución de llamada (callback) en JavaScript? Una devolución de llamada (callback) en JavaScript es una función que se pasa como argumento a otra función y que se ejecutará una vez que la función principal haya terminado de realizar su tarea. Es una forma común de manejar operaciones asincrónicas en JavaScript. 6. ¿Qué es el patrón de diseño Middleware en Express.js? El patrón de diseño Middleware en Express.js es una característica clave del framework que permite agregar funciones intermediarias entre la solicitud y la respuesta. Cada función de middleware puede realizar tareas adicionales, modificar la solicitud o la respuesta, y pasar el control al siguiente middleware o a la ruta final. 7. ¿Qué es Socket.IO en Node.js? Socket.IO es una librería que permite la comunicación bidireccional en tiempo real entre el servidor y el cliente a través de websockets. Es especialmente útil para crear aplicaciones de chat, juegos en tiempo real y otras aplicaciones que requieran actualizaciones en tiempo real. 8. ¿Qué es el patrón de diseño Singleton? El patrón de diseño Singleton es un patrón de diseño de software que se utiliza para garantizar que una clase tenga solo una instancia y proporciona un punto de acceso global a esa instancia. En Node.js, el patrón Singleton puede utilizarse para crear una única instancia de un objeto que se comparte en toda la aplicación. 9. ¿Qué es el manejo de rutas en Express.js? El manejo de rutas en Express.js es una forma de definir cómo el servidor responderá a diferentes URL y métodos HTTP. Con Express.js, puedes definir rutas y especificar qué función se ejecutará cuando el servidor reciba una solicitud para esa ruta. 10. ¿Qué es el patrón de diseño Modelo-Vista-Controlador (MVC)? El patrón Modelo-Vista-Controlador (MVC) es un patrón de diseño de software que separa la aplicación en tres componentes principales: el Modelo (datos y lógica de negocio), la Vista (interfaz de usuario) y el Controlador (manejo de eventos y coordinación). En Node.js, Express.js es un framework que puede seguir este patrón para organizar y estructurar aplicaciones web. 11. ¿Qué es un servidor HTTP en Node.js? Un servidor HTTP en Node.js es una aplicación que escucha y responde a las solicitudes HTTP de los clientes. Puede ser creado utilizando el módulo `http` o frameworks como Express.js. 12. ¿Qué es una función asíncrona en JavaScript? Una función asíncrona en JavaScript es una función que utiliza la palabra clave `async` antes de su definición. Permite utilizar el `await` dentro de la función para esperar a que una Promesa se resuelva antes de continuar con el siguiente código. Esto simplifica la escritura de código asincrónico y lo hace más parecido a código síncrono. 13. ¿Qué es Babel en Node.js? Babel es una herramienta muy popular en el ecosistema de Node.js que se utiliza para transpilar código JavaScript moderno (ES6+) a una versión compatible con navegadores y entornos más antiguos. Babel permite utilizar características de JavaScript que aún no son ampliamente compatibles en navegadores, pero que pueden ser utilizadas en el entorno de Node.js. 14. ¿Qué es el objeto `process` en Node.js? El objeto `process` es un objeto global en Node.js que proporciona información y control sobre el proceso actual que se está ejecutando en Node.js. Puede acceder a argumentos de línea de comandos, variables de entorno, información sobre el sistema, entre otros. 15. ¿Qué es el módulo `fs` en Node.js? El módulo `fs` (file system) es un módulo interno de Node.js que proporciona métodos para trabajar con el sistema de archivos. Permite leer, escribir, copiar, eliminar archivos y directorios, entre otras operaciones relacionadas con el sistema de archivos. 16. ¿Qué es el módulo `path` en Node.js? El módulo `path` es otro módulo interno de Node.js que proporciona métodos para trabajar con rutas de archivos y directorios. Facilita la manipulación y construcción de rutas de manera independiente del sistema operativo en el que se esté ejecutando la aplicación. 17. ¿Qué es el módulo `http` en Node.js? El módulo `http` es un módulo interno de Node.js que proporciona funcionalidades para crear un servidor HTTP y manejar solicitudes y respuestas HTTP. Es fundamental para construir aplicaciones web básicas en Node.js. 18. ¿Qué es el módulo `os` en Node.js? El módulo `os` (operating system) es un módulo interno de Node.js que proporciona funcionalidades relacionadas con el sistema operativo. Permite obtener información sobre el sistema, como el tipo de sistema operativo, la arquitectura del procesador, la memoria disponible, entre otros. 19. ¿Qué es el módulo `events` en Node.js? El módulo `events` es un módulo interno de Node.js que proporciona una clase `EventEmitter` que permite trabajar con eventos en Node.js. Puedes crear tus propios eventos personalizados y asignarles funciones de devolución de llamada para responder a esos eventos. 20. ¿Qué es el módulo `crypto` en Node.js? El módulo `crypto` es un módulo interno de Node.js que proporciona funcionalidades criptográficas. Permite generar claves, cifrar y descifrar datos, realizar hashes, entre otras operaciones de seguridad y encriptación. Es útil para implementar la seguridad en aplicaciones Node.js.