Node es asíncrono (el código no espera a que las operaciones de entrada y salida terminen su ejecución. Para gestionar operaciones lentas, como las de entrada y salida o la recuperación de datos remotos, Node usa devoluciones de llamadas, promesas o las palabras clave async y await integradas en JavaScript. Esto permite que Node.js sea bastante rápido y facilita a un servidor de Node gestionar una gran cantidad de conexiones.) y, por naturaleza, sigue un modelo sin bloqueo impulsado por eventos. Esto lo vuelve más eficiente para aplicaciones con una gran cantidad de multiprocesos, como en servidores web, y da como resultado tiempos de carga significativamente más rápidos. Además, es uno de los cambios arquitectónicos más importantes en comparación con otros lenguajes de programación de back-end que ejecutan código de forma síncrona.

Nos evita tener que usar php, por ejemplo.

-> Podemos ver algunas comparativas

Según lo visto, vemos que prácticamente es mejor trabajar con node.js, y con php, tan sólo cuando lo requiera el propio framework: Wordpress, Laravel , etc.

Trabajar con NodeJS es bastante sencillo, tiene una serie de comandos y propiedades, puedes incluso trabajar con el sistema de archivos, y lo convierte en ideal para crear APIs y demás.
He seguido el tutorial de youtube: https://www.youtube.com/watch?v=JwZKcm3zWcA&t=20s

Instalación

Es conveniente instalarlo en la carpeta del workspace. Lo mejor es usar el gestor de paquetes propio de node. Nvm (Node Version Manager), tiene la ventaja de que puedes instalar la última versión de Node, así como cualquier otra, y desistalarla fácilmente.

sudo su
curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh -o install_nvm.sh
bash install_nvm.sh
salimos y entramos
nvm list

nvm i node
Puedes instalar varias y usar una: nvm use v19.9.0 (ultima segura para produccion)
node -v
Otras versiones:

Podemos eliminar totalmente nodejs, como cualquier otra programa

apt remove --purge nodejs

Para Windows:
node, la opcion: npm package manager Nvm

Podemos desinstalar tan sólo una versión concreta

nvm deactivate
nvm uninstall 16.10.0

Desinstalar una versión, con nvm

nvm deactivate
nvm uninstall

Otra forma:

            Deisnstarlar:
            sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
            sudo rm -rf /usr/local/lib/node*
            sudo rm -rf /usr/local/bin/node*
            sudo rm -rf /usr/local/include/node*
            sudo apt-get purge nodejs npm
            sudo apt autoremove
            
            Instalar:
            Download the latest tar.xz NodeJS file from https://nodejs.org/en/download/
            tar -xf node-v#.#.#-linux-x64.tar.xz
            sudo mv node-v#.#.#-linux-x64/bin/* /usr/local/bin/
            sudo mv node-v#.#.#-linux-x64/lib/node_modules/ /usr/local/lib/
            

Actualizar npm

Para problemas con permisos:

		    
 mkdir ~/.npm-global
 npm config set prefix '~/.npm-global'
 export PATH=~/.npm-global/bin:$PATH
 source ~/.profile
 npm install -g jshint
 NPM_CONFIG_PREFIX=~/.npm-global

npm install -g npm (Actualizará a la última versión de npm)

npm deprecated

Open PowerShell as administrator and run (information about policy):

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install --global --production npm-windows-upgrade
npm-windows-upgrade --npm-version latest
Remember to go back to the initial policy:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force                   
                

Despues de clonar poryecto

npm i

Podemos acceder a la consola js

root@wonderful-lehmann:/# node
Welcome to Node.js v16.10.0.
Type ".help" for more information.
> 4+3
7
> console.log('Hola consola!');
Hola consola!
>

Para cualquier problema con algún paquete, lo mejor es reinstalarlo o actualizarlo

Instalamos mongoDb, base de datos no-relacional, al trabajar con json, es perfecta para node.js
-> MongoDB Tutorials

Para correr mongo
mongod
En otra terminal
mongo

Si nos da un error, que no puede abrir http:127.0.0.1:27017

Create a data/db in your home directory

1.cd ~/
2.mkdir mongo/data
3.cd mongo/data
4.mkdir db
5. mongod --dbpath ~/mongo/data/db press enter then just keep it running.

En otra terminal
mongo

Ahora debemos utilizar una libreria para conectarnos a la base de datos desde nuestra aplicacion

npm i -S mongoose
Si hay problemas
npm audit fix --force

mongo-data$ sudo mongod --dbpath ./data/db