Raahaao Code: Node.js
Build the server side: HTTP, APIs, databases, real-time, security and deploying.
9+ ore di lezioni · 2 progetti · €35
Ti aiuta a prepararti per: OpenJS Node.js Application Developer, JSNAD (Linux Foundation)
Oppure includila in un piano mensile da €3.46 a settimana (addebitati €15 al mese) →
Serve un account per aprire qualsiasi lezione. Senza account puoi sfogliare le torri e i prezzi.
Cosa imparerai, piano per piano
- 1
Foundations (Beginner)
- How the web works
- The command line
- Node.js basics and modules
- 2
Tooling (Beginner)
- Git and GitHub
- npm and dependencies
- Files, streams and JSON
- 3
Servers (Intermediate)
- A server from scratch
- Express routes and middleware
- Designing an API
- 4
Data and users (Intermediate)
- Databases from Node
- Passwords, sessions and tokens
- Real-time: polling, SSE and WebSockets
- 5
Pro (Job-ready)
- Web security
- Signing and trust
- Testing your API
- Deploying
I due progetti sul tetto
URL shortener API
Build the API behind a link shortener: send it a long web address and it hands back a short code, then anyone who visits the code is redirected to the original page. You will validate input, reject duplicate custom codes, count clicks and protect the service from a single caller flooding it.
- POST /links with a valid http(s) url returns 201 and a 6-character code.
- POST /links with an invalid url returns 400 with a JSON error.
- A custom code that is already taken returns 409.
- GET /:code redirects with 302 and a Location header.
- An unknown code returns 404 JSON.
- GET /links/:code/stats returns the click count.
- More than 5 POSTs per minute from the same ip returns 429.
Real-time chat server
Build the server side of a chat app: people log in, post messages into rooms, read the recent history and follow a live stream of new messages. You will keep login tokens safe by storing only a hash, refuse unauthenticated or oversized messages, neutralise HTML so nobody can inject a script into the page, and slow down anyone who floods a room.
- POST /login with a name returns a token, and only a hash of tokens is stored (expose tokenStoreHasPlainText() that returns false).
- POST /rooms/:id/messages without a valid token returns 401.
- Messages longer than 500 characters return 400.
- Messages are HTML-escaped in stored output.
- GET /rooms/:id/history returns the last 50 messages.
- GET /rooms/:id/stream returns content-type text/event-stream and a body formatted as data: <json>\n\n for recent messages.
- More than 10 messages in 10 seconds from one token returns 429.
Domande
Devo installare qualcosa?
No. Tutto funziona nel tuo browser. Per i progetti puoi anche lavorare sul tuo computer e caricare i tuoi file.
Posso saltare quello che conosco già?
Sì. Una volta che possiedi una torre, ogni piano ha un test di salto: segna 8 su 10 e quel piano si apre.
Qual è la politica di restituzione?
Rimborsi entro 5 giorni dall'acquisto. Dopo 5 giorni, nessun rimborso o reso.
Mantengo l'accesso?
Sì. Una torre che acquisti è tua, senza abbonamento.
Le torri
HTML & CSS · JavaScript · Python · SQL · C++ · Python per i dati · Flask · Logic & Problem Solving · Algorithms & Data Structures · Java · Machine Learning · Building with AI