Express-Projektdateiverzeichnisbeschreibung und detaillierte Funktionsbeschreibung

Express-Projektdateiverzeichnisbeschreibung und detaillierte Funktionsbeschreibung

app.js: Startdatei oder Einstiegsdatei

package.json: speichert Projektinformationen und Modulabhängigkeiten. Wenn Sie abhängige Module zu Abhängigkeiten hinzufügen und npm install ausführen, überprüft npm package.json im aktuellen Verzeichnis und installiert automatisch alle angegebenen Module.

node_modules: speichert die in package.json installierten Module. Wenn Sie abhängige Module zu package.json hinzufügen und installieren, werden sie in diesem Ordner gespeichert.

öffentlich: speichert Bild-, CSS-, JS- und andere Dateien

Routen: Routingdateien speichern

Ansichten: Ansichtsdateien oder Vorlagendateien speichern

bin: speichert ausführbare Dateien

Öffnen Sie app.js und sehen wir uns an, was drin ist:

var express = erforderlich('express');
var Pfad = erforderlich('Pfad');
var favicon = erforderlich('Serve-Favicon');
var logger = erforderlich('morgan');
var cookieParser = erforderlich('cookie-parser');
var bodyParser = erfordern('body-parser');

var Routen = erfordern('./Routen/Index');
var Benutzer = erforderlich('./routes/users');

var app = express();

//Engine-Setup anzeigen
app.set('Ansichten', Pfad.join(__dirname, 'Ansichten'));
app.set('Ansichts-Engine', 'ejs');

// entferne das Kommentarzeichen, nachdem du dein Favicon in /public platziert hast
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.verwenden(bodyParser.json());
app.use(bodyParser.urlencoded({ erweitert: false }));
app.use(cookieParser());
app.use(express.static(Pfad.join(__dirname, 'public')));

app.use('/', Routen);
app.use('/Benutzer', Benutzer);

// 404 abfangen und an Fehlerhandler weiterleiten
app.use(Funktion(req, res, next) {
    var err = neuer Fehler('Nicht gefunden');
    Fehlerstatus = 404;
    nächster(Fehler);
});

// Fehlerhandler

// Entwicklungsfehlerhandler
// druckt den Stacktrace
wenn (app.get('env') === 'Entwicklung') {
    app.use(Funktion(err, req, res, next) {
        res.status(err.status || 500);
        res.render('Fehler', {
            Nachricht: Fehlernachricht,
            Fehler: err
        });
    });
}

// Produktionsfehlerhandler
// keine Stacktraces an den Benutzer weitergegeben
app.use(Funktion(err, req, res, next) {
    res.status(err.status || 500);
    res.render('Fehler', {
        Nachricht: Fehlernachricht,
        Fehler: {}
    });
});


modul.exporte = app;

Hier verwenden wir require(), um Module wie express und path sowie die Routing-Dateien index.js und users.js im Ordner routes zu laden. Lassen Sie uns die Bedeutung jeder Codezeile erklären.

(1) var app = express(): Generiert eine Express-Instanz-App.

(2)app.set('views', path.join(__dirname, 'views')): Legt den Ordner „views“ auf das Verzeichnis fest, in dem die Ansichtsdateien gespeichert sind, d. h. in dem die Vorlagendateien gespeichert sind. __dirname ist eine globale Variable, die das Verzeichnis speichert, in dem sich das aktuell ausgeführte Skript befindet.

(3)app.set('view engine', 'ejs'): Setzt die Engine der Ansichtsvorlage auf ejs.

(4)app.use(favicon(__dirname + '/public/favicon.ico')): Legt /public/favicon.ico als Favicon-Symbol fest.

(5)app.use(logger('dev')): Lädt die Protokollierungs-Middleware.

(6)app.use(bodyParser.json()): lädt die Middleware zum Parsen von JSON.

(7)app.use(bodyParser.urlencoded({ extended: false })): Lädt die Middleware, die den URL-codierten Anforderungstext analysiert.

(8)app.use(cookieParser()): Lädt die Middleware zum Parsen von Cookies.

(9)app.use(express.static(path.join(__dirname, 'public'))): Legen Sie den öffentlichen Ordner auf das Verzeichnis fest, in dem statische Dateien gespeichert sind.

(10) app.use('/', Routen); und app.use('/Benutzer', Benutzer): Routen-Controller.

(11)

app.use(Funktion(req, res, next) {
    var err = neuer Fehler('Nicht gefunden');
    Fehlerstatus = 404;
    nächster(Fehler);
});

Erfassen Sie 404-Fehler und leiten Sie sie an den Fehlerhandler weiter.

(12)

wenn (app.get('env') === 'Entwicklung') {
    app.use(Funktion(err, req, res, next) {
        res.status(err.status || 500);
        res.render('Fehler', {
            Nachricht: Fehlernachricht,
            Fehler: err
        });
    });
}

Der Fehlerhandler in der Entwicklungsumgebung rendert die Fehlermeldung in die Fehlervorlage und zeigt sie im Browser an.

(13)

app.use(Funktion(err, req, res, next) {
    res.status(err.status || 500);
    res.render('Fehler', {
        Nachricht: Fehlernachricht,
        Fehler: {}
    });
});

Fehlerhandler in Produktionsumgebungen geben keine Fehlerinformationen an Benutzer weiter.

(14)module.exports = app: Exportieren Sie die App-Instanz, damit andere Module sie aufrufen können.

Schauen wir uns die bin/www-Datei noch einmal an:

#!/usr/bin/env Knoten
var debug = erfordern('debug')('blog');
var app = erfordern('../app');

app.set('Port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
  debug('Express-Server lauscht auf Port ' + server.address().port);
});

(1)#!/usr/bin/env node: zeigt an, dass es sich um die ausführbare Knotendatei handelt.

(2)var debug = require('debug')('blog'): Importieren Sie das Debug-Modul und drucken Sie das Debug-Protokoll aus.

(3)var app = require('../app'): Importieren Sie die App-Instanz, die wir oben exportiert haben.

(4)app.set('port', process.env.PORT || 3000): Legen Sie die Portnummer fest.

(5)

var server = app.listen(app.get('port'), function() {
  debug('Express-Server lauscht auf Port ' + server.address().port);
});

Starten Sie das Projekt und lauschen Sie auf Port 3000. Bei Erfolg wird der Express-Server gedruckt, der auf Port 3000 lauscht.

Schauen wir uns die Datei routes/index.js noch einmal an:

var express = erforderlich('express');
var router = express.Router();

/* Homepage abrufen. */
router.get('/', Funktion(req, res) {
  res.render('index', { title: 'Express' });
});

modul.exporte = Router;

Generieren Sie eine Routing-Instanz, um GET-Anfragen für den Zugriff auf die Homepage zu erfassen, exportieren Sie diese Route und laden Sie sie über app.use('/', routes) in app.js. Wenn Sie auf diese Weise die Homepage besuchen, wird res.render('index', { title: 'Express' }); aufgerufen, um die Vorlage views/index.ejs zu rendern und im Browser anzuzeigen.

Werfen wir einen Blick auf die Datei views/index.ejs:

<!DOCTYPE html>
<html>
  <Kopf>
    <Titel><%= Titel %></Titel>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </Kopf>
  <Text>
    <h1><%= Titel %></h1>
    <p>Willkommen bei <%= title %></p>
  </body>
</html>

Beim Rendern der Vorlage haben wir eine Variable namens „title“ übergeben, deren Wert die Zeichenfolge „express“ ist. Die Vorlagen-Engine ersetzt alle <%= title %> durch „express“ und zeigt dann das gerenderte HTML im Browser an, wie in der Abbildung oben gezeigt.

In diesem Abschnitt haben wir gelernt, wie man ein Projekt erstellt und startet, und haben die allgemeine Struktur und den Betriebsablauf des Projekts verstanden. Im nächsten Abschnitt lernen wir die grundlegende Verwendung der Express- und Routensteuerung.

Zusammenfassen

Dies ist das Ende dieses Artikels über die Beschreibung und Funktionsbeschreibung des Express-Projektdateiverzeichnisses. Weitere relevante Inhalte zum Express-Projektdateiverzeichnis finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung, wie nodejs express automatisch ein Projektframework generiert
  • Detaillierte Erläuterung der Praxis der Express-Projektschichtung

<<:  So ändern Sie MySQL-Berechtigungen, um Hosts den Zugriff zu ermöglichen

>>:  Detailliertes Beispiel zum Ändern des Linux-Kontokennworts

Artikel empfehlen

Lernprogramm zur Verwendung des WeChat-Applets WXS

Was ist wxs? wxs (WeiXin Script) ist eine Skripts...

Bootstrap 3.0 Studiennotizen CSS-bezogene Ergänzung

Die wesentlichen Inhalte dieses Artikels sind wie...

Index in MySQL

Vorwort Kommen wir gleich zur Sache. Die folgende...

Mit CSS3 implementierte Text-Popup-Effekte

Ergebnisse erzielenImplementierungscode html <...

So richten Sie Spring Boot mithilfe der Docker-Schichtenverpackung ein

Das Spring Boot-Projekt verwendet Docker-Containe...

Detaillierte Erläuterung der grundlegenden Datentypen in mysql8.0.19

MySQL-Basisdatentypen Übersicht über gängige MySQ...

MySQL-Inspektionsskript (unbedingt lesen)

Wie unten dargestellt: #!/usr/bin/env python3.5 p...

Centos7.3 startet oder führt beim Booten automatisch angegebene Befehle aus

In CentOS7 wurden die Berechtigungen der Datei /e...

Was muss ich tun, wenn ich einen fehlerhaften MySQL-Befehl abbrechen möchte?

Ich habe einen falschen MySQL-Befehl eingegeben u...

Zusammenfassung gängiger Docker-Befehle (empfohlen)

1. Zusammenfassung: Im Allgemeinen können sie in ...

Details zur Verwendung von Klassenstilen in Vue

Inhaltsverzeichnis 1. Boolesche Werte 2. Ausdruck...

Kurs zur Web-Frontend-Entwicklung Was sind die Web-Frontend-Entwicklungstools

Mit der Entwicklung der Internettechnologie werde...

Grafisches Tutorial zur Installation von MySQL 8.0.12

MySQL8.0.12-Installationstutorial, mit allen teil...

Detaillierte Erläuterung des Falls des JavaScript-Upload-Dateilimitparameters

Projektszenario: 1. Einschränkungen beim Hochlade...