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
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 nodePuedes 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