Erste Schritte mit Node JS
Was ist NodeJS?
- Definition: NodeJS ist eine plattformübergreifende Open-Source-JavaScript-Laufzeitumgebung, die es Ihnen ermöglicht, JavaScript-Code außerhalb eines Webbrowsers auszuführen.
- Zweck: Es wird hauptsächlich für serverseitiges Scripting verwendet, wobei JavaScript verwendet wird, um dynamische Webinhalte zu erstellen, bevor die Seite an den Webbrowser des Benutzers gesendet wird.
-
Hauptmerkmale:
- Ereignisgesteuerte Architektur: NodeJS verwendet ein ereignisgesteuertes, nicht blockierendes I/O-Modell, was es effizient und leichtgewichtig macht.
- Single-Threaded: Obwohl Single-Threaded, verarbeitet NodeJS gleichzeitige Vorgänge mithilfe seiner asynchronen Natur und der Ereignisschleife.
- Aufgebaut auf V8: NodeJS basiert auf der V8-JavaScript-Engine von Google Chrome, was die Ausführung von JavaScript-Code extrem schnell macht.
Wie funktioniert NodeJS im Hintergrund?
-
Ereignisschleife:
- NodeJS arbeitet mit einer Single-Thread-Ereignisschleife, die es ihm ermöglicht, mehrere gleichzeitige Anforderungen zu verarbeiten, ohne den Thread zu blockieren.
- Phasen der Ereignisschleife:
- Timer: Führt von setTimeout() und setInterval() geplante Rückrufe aus.
- Ausstehende Rückrufe: Führt E/A-Rückrufe aus, die auf die nächste Schleifeniteration verschoben werden.
- Leerlauf, Vorbereiten: Wird intern von NodeJS verwendet.
- Umfrage: Ruft neue I/O-Ereignisse ab und führt I/O-bezogene Rückrufe aus.
- Prüfen: Führt von setImmediate() geplante Rückrufe aus.
- Rückrufe schließen: Führt Rückrufe für Abschlussereignisse aus.
Nicht blockierende E/A: NodeJS verarbeitet E/A-Vorgänge asynchron, d. h. es wartet nicht auf den Abschluss der Vorgänge, bevor es mit der nächsten Aufgabe fortfährt.
Beispiel:
const fs = require('fs'); console.log("Start"); // Reading a file asynchronously fs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); }); console.log("End");
Ausgabe:
Start End (contents of example.txt)
Erklärung:
- NodeJS führt den Code nach dem Aufruf der Funktion fs.readFile() weiter aus, ohne auf das Lesen der Datei zu warten. Dies demonstriert sein nicht blockierendes I/O-Modell.
Was sind Module in NodeJS?
- Definition: Module sind Blöcke aus gekapseltem Code, die basierend auf ihrer zugehörigen Funktionalität mit einer externen Anwendung kommunizieren.
-
Modultypen:
- Kernmodule: In NodeJS integriert (z. B. fs, http, path usw.).
- Lokale Module: Von Benutzern erstellt, um Code zu organisieren und zu strukturieren.
- Module von Drittanbietern: Installiert über npm (z. B. Express, Lodash).
Möglichkeiten zum Importieren und Exportieren von Modulen in JavaScript und NodeJS
In JavaScript (ES6-Module):
- Exportieren:
// Named export export const add = (a, b) => a + b; // Default export export default function subtract(a, b) { return a - b; }
- Importieren:
// Named import import { add } from './math.js'; // Default import import subtract from './math.js';
In NodeJS (CommonJS-Module):
- Exportieren:
// Using module.exports module.exports.add = (a, b) => a + b; // Using exports shorthand exports.subtract = (a, b) => a - b;
- Importieren:
// Importing modules const math = require('./math.js'); const add = math.add; const subtract = math.subtract;
Was ist Dateihandhabung in NodeJS?
- Definition: Die Dateiverwaltung in NodeJS ermöglicht Ihnen die Arbeit mit dem Dateisystem auf Ihrem Computer, einschließlich Lesen, Schreiben, Aktualisieren und Löschen von Dateien.
Wichtige Funktionen:
-
Einige der wichtigsten fs-Modulfunktionen:
- fs.readFile(): Liest asynchron den Inhalt einer Datei.
- fs.writeFile(): Schreibt Daten asynchron in eine Datei und ersetzt die Datei, falls sie bereits vorhanden ist.
- fs.appendFile(): Hängt Daten an eine Datei an. Wenn die Datei nicht existiert, wird eine neue Datei erstellt.
- fs.unlink(): Löscht eine Datei.
- fs.rename(): Benennt eine Datei um.
Beispiel:
const fs = require('fs'); // Writing to a file fs.writeFile('example.txt', 'Hello, NodeJS!', (err) => { if (err) throw err; console.log('File written successfully.'); // Reading the file fs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log('File contents:', data); // Appending to the file fs.appendFile('example.txt', ' This is an appended text.', (err) => { if (err) throw err; console.log('File appended successfully.'); // Renaming the file fs.rename('example.txt', 'newExample.txt', (err) => { if (err) throw err; console.log('File renamed successfully.'); // Deleting the file fs.unlink('newExample.txt', (err) => { if (err) throw err; console.log('File deleted successfully.'); }); }); }); }); });
Ausgabe:
File written successfully. File contents: Hello, NodeJS! File appended successfully. File renamed successfully. File deleted successfully.
Wie erstellt man einen Server in NodeJS?
- Verwendung des http-Moduls: Das http-Modul ist ein Kernmodul in NodeJS, mit dem Sie einen Server erstellen können, der auf Anfragen an einem bestimmten Port lauscht und Antworten sendet.
Beispiel:
const http = require('http'); // Creating a server const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!\n'); }); // Listening on port 3000 server.listen(3000, '127.0.0.1', () => { console.log('Server running at http://127.0.0.1:3000/'); });
Ausgabe:
Server running at http://127.0.0.1:3000/
- Explanation: The server responds with "Hello, World!" every time it receives a request. The server listens on localhost (127.0.0.1) at port 3000.
What is an HTTP Module?
- Definition: The http module in NodeJS provides functionalities to create HTTP servers and clients.
Important Functions?
-
Some of the most important functions of HTTP module are:
- http.createServer(): Creates an HTTP server that listens to requests and sends responses.
- req.method: Retrieves the request method (GET, POST, etc.).
- req.url: Retrieves the URL of the request.
- res.writeHead(): Sets the status code and headers for the response.
- res.end(): Signals to the server that all of the response headers and body have been sent.
Example:
const http = require('http'); const server = http.createServer((req, res) => { if (req.url === '/') { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Welcome to the homepage!\n'); } else if (req.url === '/about') { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Welcome to the about page!\n'); } else { res.writeHead(404, { 'Content-Type': 'text/plain' }); res.end('404 Not Found\n'); } }); server.listen(3000, '127.0.0.1', () => { console.log('Server running at http://127.0.0.1:3000/'); });
Output:
- If you navigate to http://127.0.0.1:3000/, the server will display "Welcome to the homepage!".
- If you navigate to http://127.0.0.1:3000/about, the server will display "Welcome to the about page!".
- If you navigate to any other URL, the server will display "404 Not Found".
Das obige ist der detaillierte Inhalt vonErste Schritte mit Node JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Umfang von JavaScript bestimmt den Zugangsumfang von Variablen, die in globale, Funktions- und Blockebene unterteilt sind. Der Kontext bestimmt die Richtung davon und hängt von der Funktionsaufrufmethode ab. 1. Scopes umfassen globaler Umfang (überall zugänglich), Funktionsumfang (nur innerhalb der Funktion gültig) und Blockebene (LET und const sind innerhalb von {} gültig). 2. Der Ausführungskontext enthält das variable Objekt, die Bereichskette und die Werte davon. Dies weist auf globale oder undefinierte in der normalen Funktion hin, die Methode richtet sich auf das Anrufobjekt, der Konstruktor auf das neue Objekt und kann auch explizit durch Anruf/Anwendung/Bindung angegeben werden. 3.. Verschluss bezieht sich auf Funktionen, die auf externe Bereiche zugreifen und sich erinnern. Sie werden häufig zur Kapselung und zum Cache verwendet, können aber verursachen

Die Kompositionapi in VUE3 eignet sich besser für komplexe Logik- und Typableitung, und Optionsapi eignet sich für einfache Szenarien und Anfänger. 1. Optionsapi organisiert Code nach Optionen wie Daten und Methoden und hat eine klare Struktur, aber komplexe Komponenten werden fragmentiert. 2. Die Zusammensetzung verwendet ein Setup, um die verwandte Logik zu konzentrieren, die der Wartung und Wiederverwendung förderlich ist. 3. Compositionapi realisiert konfliktfreie und parameterizierbare logische Wiederverwendung durch komponierbare Funktionen, was besser ist als Mixin; 4. COMPOSECTI hat eine bessere Unterstützung für Typscript und eine genauere Typableitung; 5. Es gibt keinen signifikanten Unterschied in der Leistung und des Verpackungsvolumens der beiden; 6.

Das Typ -Casting ist das Verhalten der automatischen Konvertierung eines Werttyps in einen anderen Typ in JavaScript. Zu den allgemeinen Szenarien gehören: 1. Bei Verwendung von Operatoren, wenn eine Seite eine String ist, wird die andere Seite ebenfalls in eine Zeichenfolge konvertiert, wie z. B. '5' 5. Das Ergebnis ist "55"; 2. Im booleschen Kontext werden nicht-Boolenische Werte implizit in boolesche Typen wie leere Zeichenfolgen, 0, Null, undefined usw. konvertiert, die als falsch angesehen werden; 3.. Null nimmt an numerischen Operationen teil und wird in 0 umgewandelt, und undefined wird in NAN umgewandelt. 4. Die durch implizite Umwandlung verursachten Probleme können durch explizite Konvertierungsfunktionen wie Nummer (), String () und Boolean () vermieden werden. Das Beherrschen dieser Regeln hilft

Es gibt einen wesentlichen Unterschied zwischen den Webworkers und Javatheads von JavaScript in der gleichzeitigen Verarbeitung. 1. JavaScript nimmt ein Single-Thread-Modell an. Webworker ist ein unabhängiger Thread, der vom Browser bereitgestellt wird. Es ist geeignet, zeitaufwändige Aufgaben auszuführen, die die Benutzeroberfläche nicht blockieren, aber das DOM nicht bedienen können. 2. Java unterstützt echtes Multithreading von der Sprachebene, die über die Thread-Klasse erstellt wurde und für eine komplexe gleichzeitige Logik und die serverseitige Verarbeitung geeignet ist. 3.. Webworker verwenden Postmessage (), um mit dem Hauptfaden zu kommunizieren, der sehr sicher und isoliert ist. Java -Threads können Speicher teilen, sodass Synchronisierungsprobleme aufmerksam werden müssen. V.

Formatdaten in JavaScript können durch native Methoden oder Bibliotheken von Drittanbietern implementiert werden. 1. Verwenden Sie natives Datumsobjektstich: Holen Sie sich das Datumsteil durch Getvollerweise, GetMonth, getDate und andere Methoden und spleifen Sie es manuell in yjyy-mm-dd und andere Formate, was für leichte Bedürfnisse geeignet ist und nicht auf Bibliotheken von Drittanbietern beruht. 2. Verwenden Sie die Tolocaledatestring -Methode: Sie können wie ein MM/DD/YYYY -Format gemäß den lokalen Gewohnheiten ausgeben, unterstützen Sie mehrsprachig, aber das Format kann aufgrund verschiedener Umgebungen inkonsistent sein. 3.. Verwenden Sie Bibliotheken von Drittanbietern wie Day.js oder Date-Fns: Bietet prägnante Syntax- und Richfunktionen, die für häufige Operationen geeignet sind oder wenn Erweiterbarkeit erforderlich ist, wie z. B. DayJS ()

Initialisieren Sie das Projekt und erstellen Sie Package.json; 2. Erstellen Sie einen Eintragskriptindex.js mit Shebang; 3.. Registrieren Sie Befehle über Bin Fields in package.json; 4. Verwenden Sie Yargs und andere Bibliotheken, um die Befehlszeilenparameter zu analysieren. 5. Verwenden Sie NPMLink Local Test; 6. Hilfe, Version und Optionen hinzufügen, um die Erfahrung zu verbessern. 7. optional über NPMPublish veröffentlichen; 8. optional automatischen Abschluss mit Yargs; Erstellen Sie schließlich praktische CLI -Tools durch angemessene Struktur und Benutzererfahrungsdesign, erstellen Sie Automatisierungsaufgaben oder verteilen Sie Widgets und enden Sie sie mit vollständigen Sätzen.

Verwenden Sie document.createelement (), um neue Elemente zu erstellen; 2. Anpassen von Elementen durch TextContent, Classlist, SetAttribute und andere Methoden; 3.. Verwenden Sie appendChild () oder flexibler append () -Methoden, um dem DOM Elemente hinzuzufügen. V. Der vollständige Vorgang besteht darin, → Anpassen → Add zu erstellen, und Sie können den Seiteninhalt dynamisch aktualisieren.

Die erweiterten Bedingungstypen von TypeScript implementieren logische Beurteilung zwischen den Typen über textendu? X: y syntax. Die Kernfähigkeiten spiegeln sich in den verteilten Bedingungstypen, den Abschluss -Inferenz und der Konstruktion komplexer Typ -Werkzeuge wider. 1. Der bedingte Typ ist in den Parametern mit nötigen Typen verteilt und kann den Gelenktyp automatisch aufteilen, z. 2.. Verwenden Sie die Verteilung, um Filter- und Extraktionsinstrumente zu erstellen: Ausschließen Typen über Textendsu? Nie: t, extrahieren Gemeinsamkeiten durch textendu? 3
