←Tutte le torri

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.

Paga in

Cosa imparerai, piano per piano

  1. 1

    Foundations (Beginner)

    • How the web works
    • The command line
    • Node.js basics and modules
  2. 2

    Tooling (Beginner)

    • Git and GitHub
    • npm and dependencies
    • Files, streams and JSON
  3. 3

    Servers (Intermediate)

    • A server from scratch
    • Express routes and middleware
    • Designing an API
  4. 4

    Data and users (Intermediate)

    • Databases from Node
    • Passwords, sessions and tokens
    • Real-time: polling, SSE and WebSockets
  5. 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.

Refund policy