Node.js-Tutorial für Anfänger: Von Anfang an in Ihrer ersten App

Letzte Aktualisierung: 11/19/2025
  • Node.js funktioniert mit einem ereignisorientierten Modell und E/S blockiert nicht ideal für die Konkurrenz.
  • Modulare Architektur: Server, Router und Handler zur einfachen Erweiterung und Wartung.
  • Beschleunigen Sie die Erstellung von Web-Apps mit Routen, Ansichten und Middleware.
  • Trabaja mit npm und nativen Modulen zum Speichern von Archiven, Rot, Routen und Systemen.

Tutorial Node.js für Anfänger

Das ist Ihr erster Kontakt mit Node.js, hier ist eine Anleitung, die ich mir überlegt habe, um mit gutem Beispiel voranzugehen: Ich bin auf der Suche nach einem echten Arbeitsfluss, mit praktischen Beispielen und klaren Erklärungen. Die Unterstützung des Hola Mundo-Teams besteht darin, eine Web-App mit Express bereitzustellen, die von Systemmodulen, NPM und dem Asincrono-Assistenten übernommen wird, der speziell für das Node-Ökosystem entwickelt wurde.

Además de orientarte con Vorherige Anforderungen, Konfiguration in Visual Studio Code und erste Projekte, wie wir einen HTTP-Server organisieren, Anträge einreichen, Steuerelemente verwalten, mit POST-Daten bearbeiten, ohne den Inhalt zu blockieren und die ereignisgesteuerte Datei einzubinden. Alles mit einer langen Redezeit, ohne Rodeos und mit der Haube, die nötig ist, damit man nicht an Land gehen kann.

Vorherige Voraussetzungen und was Sie von Node.js erwarten müssen

Sie benötigen grundlegende JavaScript-Kenntnisse (Typen, Variablen, Funktionen, Objekte) und Prüflinge, die mit der Konsole verbunden sind. Node.js ist ein JavaScript-Entwickler für den Browser, basierend auf V8, mit einer leistungsfähigen Standardbibliothek und einem Ausgabemodell Dirigido por eventos y no bloqueante. Dies ermöglicht es Ihnen, viele gleichzeitige Kontakte zu knüpfen, ohne für jede Anfrage einen Beitrag zu leisten.

Con Node puedes construir Web-Server, REST-APIs, Befehlszeilenverwaltung, Echtzeit-Apps (Chat, Benachrichtigungen), Integrationen auf Basis von Daten und aktuellen IoT-Projekten. Ihr Fort stand im gleichzeitigen E/S-Manöver, das ist ideal für Hochgeschwindigkeitsverkehr und interaktive Erlebnisse.

Download und Installation

Laden Sie Node.js vom offiziellen Web herunter Auf nodejs.org installieren und für Ihr Betriebssystem installieren. Unter Windows, macOS oder Linux werden Installations- und Zusatzpakete angeboten. Bestätigen Sie die Installation per Terminal mit: node -v y npm -v. npm ist der Gestor von Node-Paketen und erlaubt die Installation von Terceros-Bibliotheken vorab.

Ihr erster Kontakt: Hola Mundo con VS Code

Si usas Visual Studio Code, Sie können den Teppich des Projekts öffnen und das integrierte Terminal mit völliger Gemütlichkeit verlassen. Erstellen Sie einen Arbeitsteppich und betreten Sie ihn: mkdir HelloNode && cd HelloNode.

Jetzt lesen Sie es im VS-Code-Con codieren.. Erstellen Sie eine Datei mit dem Namen app.js Wir stellen algo sencillo para arrancar vor: un mensaje por consola.

var msg = 'Hello World';
console.log(msg);

Zum Starten müssen Sie das Terminal in VS Code integrieren (Ver > Terminal, oder drücken Sie Strg+`) und dann node app.js. Verás el clásico ausgabe „Hello World“ auf der Konsole; Ich bin mir sicher, aber ich bestätige, dass alles gut läuft.

Der erste Server: ein HTTP-Server

Der Knoten enthält ein natives Modul namens „http“. Damit kann ein Online-Server erstellt werden. El corazón es http.createServer, Sie erhalten eine Rückruffunktion, die Sie ausstoßen Cada vez que llega una petición.

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/html'});
  response.write('Hola Mundo');
  response.end();
}).listen(8888);

Arráncalo con node server.js und besuchen http://localhost:8888/. Die Magie von Node besteht aus einem auf Ereignisse ausgerichteten Modell: Eine Funktion und die Laufzeit des „Lama de Vuelta“ (Rückruf) passieren, sobald das Ereignis erfolgt (ein Antrag).

Entendiendo Rückrufe, Asincronía und Flujo de Ejecución

Die JavaScript-Funktionen sind erstklassig: Es ist möglich, mit Argumenten wie Devolver und Variablen umzugehen. Dieser Anmelder befindet sich im Knoten-Ereignis-Bereich: Ihr Code registriert Funktionen, die angezeigt werden, sobald Erfolge auftreten (z. B. eine HTTP-Anfrage).

Es ist wichtig, den Unterschied zu verstehen zwischen Blockierende und nicht blockierende Operationen. Wenn es darum geht, die CPU mehrere Sekunden lang zu belegen (z. B. einen Pufferspeicher), wird der eingegebene Prozess blockiert und alle Anfragen werden gelöscht. En Node, Trabaja siempre que puedas con E/S asíncrona y Rückrufe oder Versprechen, um eine Blockierung des Hilo zu vermeiden.

Modularer Aufbau: Server, Router und Manöver

Separar responsabilidades Sie müssen das Projekt erweitern: ein Modul für den HTTP-Server, ein anderes für den Enrutador und andere für Controller (Request-Handler). Mögliche Exponer-Funktionen mit exports Sie benötigen Modul-Locales mit require('./miModulo').

Eine typische Struktur könnte sein: index.js como punto de entrada, server.js con el HTTP server, router.js Um zu entscheiden, welche Funktion Sie nach jedem Schritt benötigen requestHandlers.js Mit der Logik jedes Endpunkts. Diese Organisation sorgt dafür, dass der Code lesbar und einfach zu lesen ist.

Extrayendo la ruta y enrutando

Das Anforderungsobjekt wird per URL angefordert. El módulo nativo url permite extraer el Pfadname Ja, wenn die Frage fehlschlägt. Damit könnte der Router entscheiden, ob der Controller ausgeworfen wird.

var url = require('url');

function onRequest(request, response) {
  var pathname = url.parse(request.url).pathname;
  // route(pathname) ...
}

El router recebe el mapa de rutas a funciones (Ein Objekt, das jedem Schlüssel gegeben wurde, ist eine Route, die Tapferkeit, der Handler), zusammen mit dem Pfadnamen und der Überprüfung, ob eine assoziierte Funktion vorhanden ist. Si existe, la ejecuta; Wenn nicht, entwickle ein 404.

Haciendo, dass der Handler antwortet (der korrekte Patrón)

Una tentación habitual Dies bedeutet, dass der Controller eine Zeichenfolge zurückgibt und der Server sie schreibt. Aber das ist nicht der Fall, wenn der Fahrer einen Anruf tätigen muss (wie z. B. beim Auswerfen eines Befehls). Die wirksame Lösung ist inyectar el objeto response Der Handler hat die Antwort geschrieben, und der Handler hat die Antwort geschrieben (z. B. den Rückruf einer Funktion).

// router.js
function route(handle, pathname, response) {
  if (typeof handle[pathname] === 'function') {
    handle[pathname](response);
  } else {
    response.writeHead(404, {'Content-Type': 'text/html'});
    response.write('404 No Encontrado');
    response.end();
  }
}

Dieser Ansatz ermöglicht Responder justo cuando la E/S asíncrona conclusye, Blockieren Sie den Prozess nicht, bevor Sie die Daten von Devolver herunterladen.

Express: Erstellen Sie in wenigen Minuten eine Web-App

Express ist ein minimalistisches Framework für Node.js Es ermöglicht die Nutzung von Routen, Ansichten, Middleware und HTTP-Anwendungen. Mit seinem Generator kann die Struktur eines Projekts in wenigen Sekunden erstellt werden, mit Teppichen für Routen, Ausblicke und Rekursionen.

  1. Erstellen Sie einen Ordner für Ihre Projekte: mkdir ExpressProjects && cd ExpressProjects.
  2. Genera una plantilla: npx express-generator HelloWorld --view=pug Erstellen Sie eine App mit Pug-Motorradausblicken.
  3. Öffnen Sie VS Code mit code . y revisa la estructura: Kasten (arranque), Öffentlichkeit (JS/CSS/Bilder), Routen (controladores de rutas), Ansichten (Plantillas), app.js. (config), paket.json (scripts y dependencias).
  4. Abhängigkeiten installieren mit npm install en la carpeta del proyecto.
  5. Starten Sie die App. Zum Beispiel mit Reinigung: npx cross-env DEBUG=HelloWorld:* npm start.
  6. Öffnen http://localhost:3000. Prueba a cambiar la vista principal: In views/index.pug, sustituye el título por h1 "Hello World!" und aufladen.

Express-Incorpora lo necesario para gestionar GET, POST, PUT y DELETE, Middleware verwenden, Statistiken verwalten, Ansichten rendern und eine App für verschiedene Seiten mit wenigen Funktionen erstellen.

npm und Node-integrierte Module

npm ist der Gesten der Node-Pakete Sie dürfen Terceros-Bibliotheken installieren. Zum Beispiel für Express: npm install express. Dann kannst du require('express') y utilizarlo en your code. Diese Flexibilität ist wichtig, um mit Ihrem Projekt Schritt zu halten.

Además, Node includeye native Module para tareas comunes: fs (archivos), http/https (servidores), path (Routen), os (datos del sistema), url (Parsing der URL) und vieles mehr. Puedes importarlos con require() ohne etwas zu installieren.

Probando un módulo nativo: información del sistema

Das Modul enthält Daten zum Betriebssystem. Öffnen Sie die Konsole und betreten Sie die REPL de Node con node Damit Sie schnellstmöglich arbeiten können, ohne Archive zu erstellen.

  1. Schreiben os.platform() Para saber la plataforma (Win32, Linux, Darwin…). Confirmarás el SO active direkt.
  2. Mit os.arch() Erhalten Sie die Architektur (x64, arm64…). Utilit para binarios o builds.
  3. Verwenden os.cpus() Um die verfügbaren Kerne anzuzeigen. Ideal para equilibrar carga mit Clustern oder Prozessen hier.
  4. Sal del REPL con .exit o pulsando Ctrl+C dos veces. Rápido y sin residuos.

Biblioteca de terceros útil en el day a day

El ecosistema npm es enorme. Algunas beliebte Verwendungszwecke: scharf (tratamiento de imágenes y compresión), PDFKit (generación de PDF), validator.js (validación de cadenas), Bildmin y UglifyJS (minimierung), Spritesmith (Kobolde), Winston (Protokollierung) y commander.js (CLI). Instálalas con npm install <paquete> wenn Sie sie brauchen.

Wie lade ich den Node.js-Code aus dem Archiv herunter?

Schützen Sie Ihren Code in einem Archiv, zum Beispiel app.js, y ejecútalo con node app.js en la terminal. Dies ist der Beginn Ihres Programms und die Ergebnisse wurden in der Konsole angezeigt, wenn Sie einen Server auf Ihrem Browser haben.

Del REPL in die echte Anwendung: vollständig geladen

Probieren Sie den REPL aus, der perfekt für kleine Funktionen geeignet ist, aber sobald Sie Ihren Code erstellt haben, müssen Sie mit dem Archivieren, Organisieren von Modulen und Hinzufügen von NPM-Skripten fortfahren. Dies ist eine Form Automatisieren Sie Aufgaben mit NPM-Lauf Ich dokumentiere die Anfangskommandos package.json.

Manejando-Daten POST sin bloquear

Cuando a usuario envía a formelario, Der Brief der Petition kann in verschiedenen Sprachen eingereicht werden. Auf dem Server (Rückruf de createServer) añade Zuhörer data y end Um den Inhalt zu sammeln und bis zum Abschluss zu verarbeiten. Zeigt auch die Codierung an, z. B. UTF-8, zur korrekten Manipulation.

request.setEncoding('utf8');
var postBody = '';
request.addListener('data', function(chunk) {
  postBody += chunk;
});
request.addListener('end', function() {
  // route(handle, pathname, response, postBody)
});

Si necesitas extrarer campos individuales, usa el módulo 'querystring' Para parsear el cuerpo cuando llega como application/x-www-form-urlencoded: querystring.parse(postBody).text, Por ejemplo.

Kosten- und Führungskräfte-Operationen werden nicht blockiert

Zum Auslösen von Systembefehlen Es besteht keine Gefahr, dass der Server verwendet wird child_process.exec Sie antworten auf den Rückruf. Puedes añadir opciones como timeout o maxBuffer Para controlar comandos pesados. Der Patron ist derjenige, der das Beste aus ihm herausholt: nada de bloquear, y Responder cuando haya datos.

var exec = require('child_process').exec;

function handler(response) {
  exec('ls -lah', function(error, stdout, stderr) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.write(stdout);
    response.end();
  });
}

Wenn das Kommando aufgrund größerer Anforderungen geändert wurde, reagierte die Restaurierung der Routen mit der gewohnten Normalität, die sie erwarteten Ich habe keine sincronischen Kosten in den Hilo Principal gesteckt.

Subidas de ficheros: enfoque y herramientas

Für mehrteilige Uploads (Bilder und andere Archive) Die meiste Praxis kommt immer wieder in einer Spezialpackung zum Einsatz. Module wie gewaltig facilitan parsear formularios multipart/form-data, greifen Sie auf die Zeitarchive zu und bewegen Sie sie zu Ihrem Ziel. Die Idee ist la misma: Rückrufe/Versprechen y trabajar forma segura con streams.

Nachdem die Implementierung abgeschlossen ist, ist es wichtig, dass Sie den Upload in Ihren Fluch integrieren: Server que recibe el formulario, Router que dirige a la ruta de subida, y Handler Was gültig ist, bewachen und antworten Sie mit dem Ergebnis (z. B. durch das Bild).

Struktur aus Ausblicken und Inhalten

Wählen Sie Express mit Pug und einem anderen Motor, Der Controller geht in die Ferne und zeigt die Wiedergabe an. Für ein Formular, das mit einem Textfeld gesendet wurde, das von POST gesendet wurde, und einer Route, die ich brauche, müssen Sie mit zwei Handlern beginnen: Einer, der das Formular erreicht hat, und das andere Verarbeiten und entwickeln Sie den Inhalt erhalten.

Gute Organisationspraktiken

Evita archivos monolíticos. In Modulen teilen, viele Funktionen mit Verben, die Akzidenzen ausdrücken (zum Beispiel, unklar, subir, listar). Mantener las capas ligeras te erlauben, crecer sin dolores.

Sie können es mit Node.js erstellen

Ihr Modell ist ereignisgesteuert und nicht blockierend Es ist besonders gut für: Web-Server, REST-APIs, reale Apps (Chat, Dashboards), Bots und CLIs, Integrationen mit Datenbasis, Arbeitsspeicher und Hardware-Steuerung. Die Möglichkeit, WebSockets und Streaming zu verwalten, wurde in eine natürliche Auswahl für interaktive Erlebnisse umgewandelt.

  • Servidores y sitios web con plantillas o SSR.
  • REST-APIs Vorbereitungen für den Hochverkehr.
  • Echtzeit Mit Sockets für Chat, Benachrichtigungen oder Spiele.
  • Kommandozeilen-Tools um Aufgaben zu automatisieren.
  • Prozesse mit Dateien und Datengrundlagen, Colas und Pipelines.
  • IoT- und Hardware con librerías específicas.

Herramientas de prendizaje y práctica

Es gibt viele interaktive Personen, die Code und Informationen benötigen Mehr als genug, ideale Beispiele für schnelle Enthüllungen. Soweit ich weiß, können wir mit der Erstellung von Dokumenten fortfahren: Dokumente erstellen, Beispiele kopieren und lokal mit Ihrem Terminal ausdrucken, was dem Prinzip am meisten genügt.

Visual Studio Code: Produktivität ohne Editor

Das integrierte Terminal, der Reiniger und die Erweiterungen Der VS-Code wurde mit viel Aufwand für den Knoten erstellt. Unter „Ver > Terminal“ können Sie Granaten öffnen, die vorgegebene Position ändern und auswerfen node o npm run Ich habe den Herausgeber nicht verlassen. Además, configurer launch.json te erlauben, paso a paso zu depurarieren.

Versions- und Stabilitätsmerkmale

Viele klassische Klassiker werden jedoch mit Antigua-Versionen von Node angeboten Die Konzepte semantienen vigentes: Rückrufe, native Module, Anmeldung, Bearbeitung und Trennung der Verantwortlichkeiten. Ich arbeite mit aktuellen, schnelleren und sichereren Versionen und einem neuen Ökosystem.

Downloads und zusätzliche Rekursionen

Kann mit Dokumentationen, PDFs und Tutorials erweitert werden. Überprüfen Sie die offizielle Website von Node für Neuerungen und Downloads und identifizieren Sie die Lehrinhalte, die darin enthalten sind ejercicios, quizzes y retos um mit der Zeit, die vorausgeht, vertraut zu sein.

Wenn Sie zusätzliches Material suchen, finden Sie Einführungsleitfäden und Referenzen in der Praxis mit Beispielen, die Sie benötigen, wenn Sie sie benötigen. Mantén tu foco en practicar: leer está gut; ejecutar, romper cosas y arreglarlas, mejor.

Vollständiges Beispiel: Mini-App mit Router und Handlern

Juntando piezas. Imagina un proyecto con index.js que arranca el servidor, server.js con HTTP y parsing de POST, router.js Sie entscheiden, welche Funktion das Auswerfen ausführt requestHandlers.js Mit den folgenden Schritten: Ich muss ein Formular ausfüllen und den gesendeten Text lesen.

// index.js
var server = require('./server');
var router = require('./router');
var handlers = require('./requestHandlers');

var handle = {};
handle['/'] = handlers.iniciar;
handle['/iniciar'] = handlers.iniciar;
handle['/subir'] = handlers.subir;

server.iniciar(router.route, handle);
// server.js
var http = require('http');
var url = require('url');

function iniciar(route, handle) {
  function onRequest(request, response) {
    var postData = '';
    var pathname = url.parse(request.url).pathname;

    request.setEncoding('utf8');
    request.addListener('data', function(chunk) { postData += chunk; });
    request.addListener('end', function() {
      route(handle, pathname, response, postData);
    });
  }

  http.createServer(onRequest).listen(8888);
}

exports.iniciar = iniciar;
// router.js
function route(handle, pathname, response, postData) {
  if (typeof handle[pathname] === 'function') {
    handle[pathname](response, postData);
  } else {
    response.writeHead(404, {'Content-Type': 'text/html'});
    response.end('404 No Encontrado');
  }
}

exports.route = route;
// requestHandlers.js
var querystring = require('querystring');

function iniciar(response) {
  var body = '<html>'+
    '<head><meta charset=\'UTF-8\' /></head>'+
    '<body>'+
    '<form action=\'/subir\' method=\'post\'>'+
    '<textarea name=\'text\' rows=\'10\' cols=\'40\'></textarea>'+
    '<input type=\'submit\' value=\'Enviar\' />'+
    '</form>'+
    '</body></html>';

  response.writeHead(200, {'Content-Type': 'text/html'});
  response.end(body);
}

function subir(response, postData) {
  var text = querystring.parse(postData).text || '';
  response.writeHead(200, {'Content-Type': 'text/html'});
  response.end('Tu enviaste: ' + text);
}

exports.iniciar = iniciar;
exports.subir = subir;

Dies ist das Mindeste, was Sie brauchen Ein funktionsfähiger und nicht blockierender Server, mit Routen und getrennten Steuerungen, bereit für die Erstellung hacia vistas, Uploads oder Integration auf Basis von Daten.

Die Node-Taste ist in „Acciones“ gedankenverloren: Pasar-Funktionen, Inyectar-Abhängigkeiten, sobald sie zusammenkommen, und einige wenige Verantwortungsblöcke warten. Daher ist Ihre Anwendung einfacher zu verwalten und passt sich noch besser an Ihre Vollständigkeit an.

Alles, was Sie sehen müssen, ist eine einzige Basis: Nachdem Sie Node installiert und Ihr erstes Skript ausgeführt haben, gefolgt von VS Code, Ein nativer HTTP-Server, aktivierte Server, Express, npm, native Module, REPL, Blockverknüpfung y Manejo de Formularios POST. Mit praktischen und kleinen Iterationen können Sie Projekte bis zu einem gewissen Grad konstruieren, ohne den Code zu klären.

Zusammenhängende Posts: