Una forma de solucionar el error node unexpected token si estamos seguros que nuestro código está bien, es cambiar la versión de node que usamos.
Ejemplo del error
Mientras realizaba los ejercicios del curso Node: De cero a experto ( Edición 2021 ), me encontré con el siguiente error
const empleado = empleados.find(emp => emp.id === id)?.nombre
^
SyntaxError: Unexpected token '.'
at wrapSafe (internal/modules/cjs/loader.js:1067:16)
at Module._compile (internal/modules/cjs/loader.js:1115:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint as runMain
Esto sucede a veces cuando probamos características nuevas en node, y es de esperarse porque eso es lo que se enseña en ese curso. Si deseas saber mi opinión del curso puedes revisar mis reseñas de cursos de Udemy.
Para lidiar con este tipo de problemas sugiero trabajar con nvm.
Solución con node version manager
Tiempo Necesario : 0 days 0 hours 20 minutes
Primeramente verificamos la versión de nuestro nvm
>nvm --version
En mi caso me dice que estoy ejecutando la versión 1.1.7.Posteriormente veo que versiones de node tengo instaladas
para ello uso el comando
> nvm list
En mi caso me arrojó que estoy corriendo la versión 13.7.0 con el ejecutable de 64 bitsObtener que versiones recientes puedo instalar
ejecuto:
>nvm list available
Esto arroja una tabla con las versiones recientes
Sin embargo si deseas la lista completa de versiones, no solamente las más recientes deberás consultarla en https://nodejs.org/download/releasePara instalar una versión específica de node uso el comando
>nvm install 14.16.0
Este comando se encargará de descargar node y npm en las versiones necesarias.
Ahora al listar las instalaciones que tengo obtendré:>nvm list
* 13.7.0 (Currently using 64-bit executable)
14.16.0
Con un asterisco indicando la selección actual.Finalmente para cambiar la versión de node
uso el comando
> nvm use 14.16.0Now using node v14.16.0 (64-bit)
esto me indicará que la versión actual ha cambiado. Tras correr de nuevo el código todo debería de funcionar ahora.
Herramientas
- Node Version Manager ( NVM )