Heim >Web-Frontend >Front-End-Fragen und Antworten >Nodejs erstellt eine Website
Mit der kontinuierlichen Weiterentwicklung der Webtechnologie hat sich Node.js zu einer der von Menschen am häufigsten verwendeten Entwicklungssprachen entwickelt. Node.js ist eine JavaScript-Laufzeitumgebung, die auf der Chrome V8-Engine basiert und sich zum Erstellen schneller, skalierbarer Webanwendungen eignet. In diesem Artikel stellen wir den Prozess der Erstellung einer Website mit Node.js vor.
1. Umgebungseinrichtung
Bevor Sie beginnen, müssen Sie zunächst die Umgebung einrichten. Es wird empfohlen, die LTS-Version von Node.js zu verwenden, das Installationspaket für das entsprechende System von der offiziellen Website (https://nodejs.org/en/) herunterzuladen und zu installieren.
Nach Abschluss der Installation müssen Sie bestätigen, ob die Umgebungsvariablen von Node.js erfolgreich konfiguriert wurden. Öffnen Sie das Befehlszeilenfenster und geben Sie node -v ein. Wenn die Versionsnummer angezeigt wird, ist die Installation erfolgreich.
2. Erstellen Sie einen HTTP-Server
Node.js stellt das http-Modul bereit, mit dem Sie einen Webserver erstellen können. Darunter erstellt die Methode createServer () einen HTTP-Server und die Methode listen () lauscht auf den angegebenen Port und die angegebene IP-Adresse.
Der Code lautet wie folgt:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World! '); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Der obige Code erstellt einen einfachen HTTP-Server, der auf den lokalen Port 3000 lauscht. Geben Sie http://127.0.0.1:3000/ in den Browser ein, um auf die Seite auf dem Server zuzugreifen. Der Seiteninhalt ist Hello World!.
3. Prozessweiterleitung
Wenn Sie einfach „Hello World“ an den Kunden senden! Nachricht, dann reicht die Verwendung eines HTTP-Servers aus. In der tatsächlichen Entwicklung werden Sie jedoch auf komplexere Anfrage-Antwort-Szenarien stoßen und müssen sich mit dem Routing befassen.
In diesem Beispiel gehen wir davon aus, dass es zwei Seiten gibt: /home und /about. Bei der Anforderung des Zugriffs auf diese beiden Seiten ist eine unterschiedliche Handhabung erforderlich. Daher kann dem HTTP-Server eine Routing-Verarbeitung hinzugefügt werden.
Der Code lautet wie folgt:
const http = require('http'); const url = require('url'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { const uri = url.parse(req.url).pathname; if (uri === '/home') { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Welcome to the homepage! '); } else if (uri === '/about') { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('About the website! '); } else { res.statusCode = 404; res.setHeader('Content-Type', 'text/plain'); res.end('404 Not Found '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Im obigen Code wird das integrierte URL-Modul von Node.js verwendet, um die angeforderte URL-Adresse in einen Pfadnamen für die Routing-Verarbeitung zu analysieren. Wenn der angeforderte Pfadname /home ist, gibt der Server „Willkommen auf der Homepage!“ zurück; wenn der angeforderte Pfadname /about lautet, gibt der Server „Über die Website“ zurück; wenn der angeforderte Pfadname nicht vorhanden ist, gibt der Server 404 Not zurück Gefunden .
4. Vorlagen-Engine verwenden
Im eigentlichen Entwicklungsprozess kann die Verwendung von Vorlagen-Engines die Entwicklungseffizienz erheblich verbessern. Zu den häufig verwendeten Vorlagen-Engines gehören EJS, Lenker, Jade usw. In diesem Beispiel wird die EJS-Vorlagen-Engine zum Rendern von Seiten verwendet.
Installieren Sie zunächst das EJS-Modul über npm:
npm install ejs --save
Nehmen Sie Änderungen am HTTP-Server vor und verwenden Sie die Template-Engine, um die HTML-Seite zu rendern:
const http = require('http'); const url = require('url'); const ejs = require('ejs'); const fs = require('fs'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { const uri = url.parse(req.url).pathname; if (uri === '/home') { fs.readFile('./views/home.ejs', 'utf8', (err, data) => { if (err) { console.log(err); res.statusCode = 404; res.setHeader('Content-Type', 'text/plain'); res.end('File not found! '); } else { res.statusCode = 200; res.setHeader('Content-Type', 'text/html'); const template = ejs.compile(data); const html = template({title: 'Home Page', message: 'Welcome to the homepage!'}); res.end(html); } }); } else if (uri === '/about') { fs.readFile('./views/about.ejs', 'utf8', (err, data) => { if (err) { console.log(err); res.statusCode = 404; res.setHeader('Content-Type', 'text/plain'); res.end('File not found! '); } else { res.statusCode = 200; res.setHeader('Content-Type', 'text/html'); const template = ejs.compile(data); const html = template({title: 'About Page', message: 'About the website!'}); res.end(html); } }); } else { res.statusCode = 404; res.setHeader('Content-Type', 'text/plain'); res.end('404 Not Found '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Im obigen Code wird das fs-Modul zum Lesen der Vorlagendatei verwendet. und das EJS-Modul wird zum Rendern der Vorlagendatei verwendet. Geben Sie die generierte HTML-Seite an den Client zurück.
5. Verwenden Sie statische Dateien
In der tatsächlichen Entwicklung werden normalerweise statische Dateien wie Bilder, CSS-Dateien, JavaScript-Dateien usw. verwendet. Node.js stellt einen statischen Dateidienst bereit, mit dem Anforderungen für statische Dateien verarbeitet werden können.
Der Code lautet wie folgt:
const http = require('http'); const url = require('url'); const ejs = require('ejs'); const fs = require('fs'); const path = require('path'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { const uri = url.parse(req.url).pathname; const filename = path.join(process.cwd(), uri); fs.exists(filename, (exists) => { if (!exists) { res.statusCode = 404; res.setHeader('Content-Type', 'text/plain'); res.end('404 Not Found '); return; } if (fs.statSync(filename).isDirectory()) { filename += '/index.html'; } fs.readFile(filename, 'binary', (err, file) => { if (err) { res.statusCode = 500; res.setHeader('Content-Type', 'text/plain'); res.end(err + ' '); return; } res.statusCode = 200; const extname = path.extname(filename); res.setHeader('Content-Type', mimeTypes[extname] || 'text/plain'); res.write(file, 'binary'); res.end(); }); }); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Im obigen Code wird das fs-Modul verwendet, um zu bestimmen, ob die angeforderte Datei vorhanden ist, das path-Modul wird verwendet, um den Pfad zu verarbeiten, und mimeTypes wird verwendet, um den Dateityp zu definieren. Wenn die angeforderte Datei nicht vorhanden ist, wird 404 Not Found zurückgegeben. Wenn es sich bei der Anforderung um einen Ordner handelt, wird standardmäßig die Datei index.html im Ordner angefordert. Wenn die Datei erfolgreich gelesen wurde, wird 200 zurückgegeben Header und Antwort werden gleichzeitig gesetzt.
Durch die oben genannten Vorgänge haben wir mit Node.js erfolgreich eine Website erstellt und grundlegende Routing-Verarbeitung und statische Dateidienste implementiert. Durch weitere Studien und Übungen können wir komplexere Websites erstellen und mehr Funktionen implementieren, z. B. Datenbankoperationen, Anforderungsagenten usw.
Das obige ist der detaillierte Inhalt vonNodejs erstellt eine Website. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!