En aquest curs he començatm clonant un repositori de Github per obtenir una carpeta. La he instal·lat al meu escriptori i amb una instrucció (npm) ha iniciat un servidor en local al que puc accedir per un dels ports.
Estem utilitzant NPM
Nom complet: Node Package Manager
Funció principal: És l’eina oficial per gestionar paquets (biblioteques o mòduls) en l’ecosistema Node.js.
Ús bàsic: Instal·lar, compartir i gestionar dependències en projectes JavaScript i backend.
Gestió de dependències: Permet instal·lar paquets públics des del npm registry.
Scripts: Es poden definir scripts personalitzats al fitxer package.json per automatitzar tasques com iniciar el servidor, executar tests, etc.
Gestió de versions: Manté les versions exactes de cada paquet (paskage-lock.json) per assegurar-se que funcioni igual a diferents màquines.
Aquest paquest contenen molta info important com l'autor i una explicació del projecte.
Les Numeracions de les versions tenen una raó de ser!
package": "MAJOR.MINOR.PATCH"
Per exemple: Mikiscript 1.2.1
La versión MAJOR debe incrementarse cuando hagas cambios de API incompatibles. La versión MINOR debe incrementarse cuando añadas funcionalidades de forma compatible con versiones anteriores. La versión de PATCH debe incrementarse cuando realices correcciones de errores compatibles con versiones anteriores. Esto significa que PATCHes son correcciones de errores y los MINORs añaden nuevas funcionalidades, pero ninguno de ellos rompe lo que funcionó antes. Finalmente, los MAJORs añaden cambios que no funcionarán con versiones anteriores.
Para permitir que una dependencia de npm se actualice a la última versión de PATCH, puedes prefijar la versión de la dependencia con el carácter tilde (~). A continuación se muestra un ejemplo de como permitir actualizaciones a cualquier versión 1.3.x.
"package": "~1.3.8"
"package": "^1.3.8" (permet actualitzacions MINORs com 1.4)
Ara vaig a fer el mòdul d'Express
El servidor debe reiniciarse después de realizar cambios en sus archivos.
Puedes detener el servidor desde el terminal usando Ctrl + C e iniciarlo usando Node directamente (node mainEntryFile.js) o usando un script de ejecución en el archivo package.json con npm run.
Por ejemplo, el script "start": "node server.js" se ejecutaría desde el terminal usando npm run star.
Para implementar el auto reinicio del servidor al guardar archivos, Node proporciona la bandera --watch que puedes añadir a tu script de inicio "start": "node --watch server.js" o puedes instalar un paquete npm como nodemon. Te dejaremos esto como un ejercicio.
Em demana que faci sortir un missatge a la consola i no en tinc ni idea. Em remet a una pàgina amb tots els mètodes de Node.js
Ara m'he quedat molt encallat i resulta que quan clones un git cal que instal·lis les dependències. Per tant, com a base, sempre després del git clon, npm install i després pots fer start.
Pots fer que respongui a qualsevol petició amb el que vulguis fent:
app.get("/", function(req, res) {
res.send("Hello Express");
});
Podem respondre amb arxius fent:
app.get("/", function(req, res) {
res.sendFile(__dirname + '/Desktop/boilerplate-express/views>
});
Clean Code:
He afegit el llibre de Clean Code al NotbookLM que tinc coses d'estratègia digitial, google i altres i li he demanat un resum. El sintetitzo encara més aquí:
1) Noms amb sentit:
Revelen intencions (si cal comentari no és prou bo)
Evitar desinformació
Fer distincions amb sentit (evitar numerar o redundants)
Pronunciables i buscables
Evitar info de tipus en el nom
Les Classes són noms o frases sustantives
El mètodes són verbs o frases verbals
Els métodes d'accés han d'utilitzar get, set i is segons Javabean.
No passar-se de divertit. Comprensió millor que humor
Àmbit i longitud del nom: Proporcional. Coses petites, nom petit. Coses grans, nom gran i precís.
2) Les funcions s'han de crear amb cura
Mida reduïda
Fer una sola cosa
Un sol nivell d'abstracció
Regla descendent: El codi es llegeix de dalt a baix
Instruccions Switch: Són difícils de mantenir petites i sovint fan "N" coses. Si són inevitables, encapsuleu-les en una classe de nivell inferior, useu polimorfisme per crear objectes i amagueu-les darrere d'una relació d'herència
Evitar Booleans
Evitar arguments de sortida: Els arguments solen ser entrades. Si una funció ha de canviar l'estat d'un element, ha de canviar l'estat del seu objecte contenidor
Sense efectes secundaris
Millor excepcions que codis d'error
No repetir-se
No tornar Null (torna alguna cosa que indiqui què passa)
3) Comentaris: Són indicador de fracàs
No compensen codi incorrecte: No comentis, soluciona
Menteixen: No s'actualitzen igual que el codi i queden desfasats
Un bon nom evita comentaris
Quan son bons:
Legals (autors, llicències
Informació addcional
Explicar intenció
Advertir consequències
TODO: Pendents, experiments
Per accentuar la importància d'alguna cosa
Javadoc en APIs públiques
4) Format
Vertical:
Mida curta (en JAva 200 línies maxim 500)
Metàfora diari: Conceptes al nivell al principi i detalls a mesura que avances
Obertura vertical: Línies en blanc per separar conceptes
Densitat vertical: Si està relacionat ha d'estar junt
Distància vertical: Conceptes relacionats han d'estar a prop
Declarar variables el més a prop possible del seu ús.
Funcions dependents: Si una invoca l'altra han d'estar a prop
Horitzontal:
Evitar desplaçar-se cap a la dreta
Espais per separar i junts per relacionar
Indentiació per fer visible jerarquia i àmbits
Regles d'equip
5: M'he cansat de fer la síntesis. Un altre dia potser segueixo.
.env
Arxiu secret. No el puguis mai als servidors i repositoris. Pot contenir les APIkeys i info sensible de registres necessaries pel funcionament de l'app.
El archivo .env es un archivo oculto que se utiliza para pasar variables de entorno a la aplicación. Este archivo es secreto, solamente tú puedes acceder a él, y puede ser utilizado para almacenar datos que desees mantener privados u ocultos. Por ejemplo, puedes almacenar claves de APIs de servicios externos o la URI de tu base de datos. También puedes usarlo para guardar opciones de configuración. Modificando las opciones de configuración, puedes cambiar el comportamiento de tu aplicación, sin necesidad de reescribir código.
Las variables de entorno son accesibles desde la aplicación como process.env.VAR_NAME. El objeto process.env es un objeto global de Node, y las variables son pasadas como cadenas de texto. Por convención, los nombres de las variables son en letras mayúsculas, con las palabras separadas por guión bajo. El archivo .env es un archivo shell, por lo que no es necesario incluir los nombres o valores entre comillas.
Una cosa que m'ha semblat interessant és que nosaltres podem estructurar la demanda d'informació del client comsi fos una URL en un format que ens informi del que està demanant el client o fins i tot, segons el tipus de demanda, la pròpia URL que es genera sigui la resposta del que demana.
Otra forma común de obtener la entrada del cliente es codificando los datos después de la ruta, usando una cadena de consulta. La cadena de consulta está delimitada por un signo de interrogación (?), e incluye parejas de campo=valor. Cada pareja está separada por un ampersand (&). Express puede analizar los datos de la cadena de consulta, y llenar el objeto req.query. Algunos caracteres, como el porcentaje (%), no pueden estar en URLs y tienen que ser codificados en un formato diferente antes de poder enviarlos. Si usas la API desde JavaScript, puedes usar métodos específicos para codificar/decodificar estos caracteres.
route_path: '/library'
actual_request_URL: '/library?userId=546&bookId=6754'
req.query: {userId: '546', bookId: '6754'}