Descripción:
Node.js es un entorno de tiempo de ejecución de JavaScript, de ahí su terminación «.js». Este entorno de tiempo es open source, es decir, de código abierto, multiplataforma y que se ejecuta del lado del servidor.
Este entorno fue creado por los desarrolladores de JavaScript con el objetivo de ir un paso más allá con este lenguaje de programación.
Hasta la creación de Node.js, allá por el año 2009, el lenguaje de programación JavaScript únicamente podía ejecutarse del lado del navegador o cliente, pero… ¿Qué ocurría si queríamos ejecutar este lenguaje fuera del navegador o del lado del servidor?
Como JavaScript únicamente se podía utilizar dentro del marco de las etiquetas <script> </script>, los desarrolladores tenían que tirar de diferentes lenguajes y herramientas tanto en el frontend como en el backend.
Node.js posee todo lo necesario para ejecutar código JavaScript del lado del servidor. Algo que facilita mucho el trabajo de los desarrolladores y el motivo por el que actualmente sea una de las herramientas de trabajo más usadas en desarrollo web.
Objetivo del curso: Al término del curso el participante habrá adquirido los siguientes conocimientos:
- Cómo funciona Node.js
- Sus fundamentos: arquitectura, bucle de eventos, etc.
- API: Cómo utilizar sus variables globales y módulos.
- Qué son los paquetes npm (el estándar de hecho para los paquetes JavaScript).
- Cómo utilizar npm (el gestor de paquetes incluido en Node.js) para:
- Instalar y gestionar paquetes.
- Crear y publicar paquetes.
- Cómo escribir scripts de paquetes multiplataforma para ejecutar tareas de desarrollo como la generación de artefactos y la ejecución de pruebas.
- Cómo utilizar todos los conocimientos anteriores para crear y desplegar scripts de shell multiplataforma.
Requisitos de ingreso.
Comprensión de textos en idioma inglés.
Debe estar familiarizado con JavaScript, especialmente:
- Módulos ECMAScript: importación y exportación de valores, etc.
- JavaScript asíncrono: Promesas, funciones asíncronas, etc.
Temario:
Parte 1: FUNDAMENTOS
- Cómo empezar con Node.js
- Instalar Node.js y npm
- Ejecutar código Node.js
- Una visión general de Node.js: arquitectura, APIs, bucle de eventos, concurrencia
- La plataforma Node.js
- El bucle de eventos de Node.js
- libuv: la biblioteca multiplataforma que maneja la E/S asíncrona (y más) para Node.js
- Paquetes: Las unidades de JavaScript para la distribución de software
- ¿Qué es un paquete?
- La disposición del sistema de archivos de un paquete
- Archivar e instalar paquetes
- Referirse a los módulos mediante especificadores
- Especificadores de módulos en Node.js
- El gestor de paquetes npm
- Comandos comunes de npm
- Abreviaturas de los comandos de npm
Parte 2: FUNCIONALIDAD BÁSICA DE NODE.JS
- Rutas del sistema de archivos y URLs de archivos en Node.js
- Conceptos básicos de rutas y su soporte en la API
- Obtención de las rutas de los directorios estándar a través del módulo ‘node:os’
- Concatenación de rutas
- Asegurarse de que las rutas son normalizadas, totalmente cualificadas o relativas
- Análisis de rutas: extracción de varias partes de una ruta (extensión del nombre del archivo, etc.)
- Categorización de rutas
- Utilizar las mismas rutas en diferentes plataformas
- Uso de file: URL para referirse a los archivos
- Sistema de archivos en Node.js
- Conceptos, patrones y convenciones de las APIs del sistema de archivos de Node
- Lectura y escritura de archivos
- Recorrer y crear directorios
- Copiar, renombrar, mover y eliminar archivos o directorios
- Leer y modificar entradas del sistema de archivos
- Flujos nativos de Node.js
- Flujos
- Flujos legibles
- Transformación de flujos legibles mediante generadores asíncronos
- Flujos escribibles
- Web streams en Node.js
- ¿Qué son los web streams?
- Convertir fuentes de datos en ReadableStreams mediante wrapping
- Escribir en WritableStreams
- Convertir los sumideros de datos en WritableStreams a través de wrapping
- Uso de TransformStreams
- Implementación de TransformStreams personalizados
- Flujos de bytes
- Recetas de flujos
- Escribir en la salida estándar (stdout)
- Escribir en el error estándar (stderr)
- Lectura de la entrada estándar (stdin)
- Recetas de flujos en Node.js
- Recetas de secuencias web
- Ejecución de comandos del shell en procesos hijo
- Creación de procesos asíncronos: spawn()
- Generación de procesos de forma sincrónica: spawnSync()
- Funciones de ayuda asíncronas basadas en spawn()
- Funciones de ayuda síncronas basadas en spawnAsync()
Parte 3: PAQUETES
- Instalación de paquetes npm y ejecución de scripts bin
- npx: ejecutar scripts bin en paquetes npm sin instalarlos
- Creación de scripts de shell multiplataforma
- Módulos ESM de Node.js como scripts shell independientes en Unix
- Creación de un paquete npm con scripts de shell
- Cómo instalar npm los scripts de shell
- Publicación del paquete de ejemplo en el registro npm
- Scripts shell independientes de Node.js con extensiones arbitrarias en Unix
- Scripts de shell Node.js autónomos en Windows
- Rutas de la shell: asegurarse de que las shells encuentran los scripts
- Ejecución de tareas multiplataforma a través de scripts de paquetes npm
- Scripts de paquetes npm
- Tipos de scripts de paquetes
- El entorno del shell en el que se ejecutan los scripts de paquetes
- Uso de variables de entorno en los scripts de paquetes
- Argumentos para los scripts de paquetes
- El nivel de registro de npm (cuánta salida se produce)
- Scripts de shell multiplataforma
Parte 4 :MANEJO DE TAREAS COMUNES EN EL SCRIPTING
- Análisis de los argumentos de la línea de comandos con util.parseArgs()
- Análisis de los argumentos de la línea de comandos
- Tokens de parseArgs
- Detectar si el módulo actual es “main” (el punto de entrada de la aplicación)
- Acceder a archivos relativos al módulo actual
- Consideraciones multiplataforma
- Rutas del sistema de archivos
- Manejo de los terminadores de línea
I am truly delighted to glance at this webpage posts which consists of tons of
helpful data, thanks for providing such information.
Hello There. I found your weblog using msn. This is an extremely smartly written article.
I will make sure to bookmark it and come back to read extra of your helpful information.
Thanks for the post. I’ll definitely return.
This design is wicked! You definitely know how to keep a reader amused.
Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Wonderful job.
I really loved what you had to say, and more than that, how you presented it.
Too cool!
This is very interesting, You are a very skilled blogger.
I’ve joined your feed and look forward to seeking more of your great post.
Also, I have shared your web site in my social networks!
If you are going for most excellent contents like myself, just pay a visit this site every day as it provides
feature contents, thanks
Usually I do not read post on blogs, however I
wish to say that this write-up very pressured me to try and
do so! Your writing style has been surprised me.
Thank you, very great article.
Hello, Neat post. There’s an issue together with your web site in internet explorer,
could check this? IE nonetheless is the marketplace chief and a huge portion of
other folks will omit your magnificent writing because of this problem.
Great web site you’ve got here.. It’s hard to find quality writing like yours
nowadays. I seriously appreciate individuals like
you! Take care!!
Hi there mates, nice post and nice arguments commented at this place, I am actually enjoying by these.
I was curious if you ever considered changing the page layout of
your blog? Its very well written; I love what
youve got to say. But maybe you could a little
more in the way of content so people could
connect with it better. Youve got an awful
lot of text for only having 1 or two pictures.
Maybe you could space it out better?