Domina los procesos hijos en Node.js con confianza: aprender a elegir el método correcto, configurar el cwd y ejecutar de forma síncrona te permitirá resolver el reto con rapidez y sin errores. Aquí verás cómo aplicar el API de Child Processes del core de Node para pasar un ejercicio que representa el 8 % de la prueba.
¿Qué evalúa y por qué importa?
Este dominio valida que sepas crear y controlar procesos hijos en Node, diferenciando métodos y opciones del API. El reto central: crear un proceso hijo que ejecute un archivo, fijar el directorio de trabajo y hacerlo de forma síncrona.
- Peso del dominio: 8 % de la prueba.
- Un ejercicio: Task 3.1 / 3.X con archivos
Answer.js, package.json y README.
- Objetivo: ejecutar un archivo con proceso hijo y establecer cwd del proceso según el argumento
directory.
- Requisito clave: ejecución síncrona para garantizar orden y control.
- Recomendación: consultar la documentación oficial del core de Node sobre Child Processes.
¿Qué habilidades y conceptos refuerzas?
- Diferenciar métodos síncronos y asíncronos en el API de procesos hijos.
- Seleccionar el método correcto según la necesidad: ejecutar archivo y sincronía.
- Entender el objeto de opciones y propiedades como cwd.
- Leer y aplicar documentación oficial para validar decisiones.
¿Cómo elegir el método adecuado del API de Node?
El punto de partida es la documentación. Allí verás métodos asíncronos y síncronos. El ejercicio exige “ejecutar un archivo” y hacerlo “sincrónicamente”. Por eso, la elección natural es execFileSync.
- Métodos asíncronos:
exec, execFile.
- Métodos síncronos:
execSync, execFileSync, spawnSync.
- Para ejecutar un archivo directamente:
execFileSync.
- Opciones por objeto: usa
cwd para fijar el directorio de trabajo del proceso hijo.
- Nota práctica: los ejemplos suelen mostrarse en asíncrono, pero la forma de uso es equivalente en su versión síncrona.
¿Cómo resolver el ejercicio con execFileSync?
En Answer.js, la función recibe dos argumentos que debes usar tal cual: file (el archivo a ejecutar) y directory (el directorio donde debe ejecutarse). La solución crea el proceso hijo con execFileSync y establece cwd con el valor de directory.
const { execFileSync } = require('child_process');
function Answer(file, directory) {
return execFileSync(file, { cwd: directory });
}
module.exports = Answer;
- Importa
execFileSync desde child_process.
- Pasa
file como primer argumento para ejecutar ese archivo.
- Define el objeto de opciones con
{ cwd: directory }.
- Mantén la ejecución síncrona para cumplir el requerimiento.
- Cuida los nombres de argumentos: usa
file y directory como se describe.
¿Tienes dudas puntuales sobre cwd, sincronía o elección de métodos? Déjalas en los comentarios y conversemos sobre tu implementación.