suchen
HeimWeb-Frontendjs-TutorialEin Leitfaden für die ersten Schritte zur Verwendung des Express Framework für Node.js_node.js

Einführung in Express
npm bietet eine große Anzahl von Modulen von Drittanbietern, darunter viele Web-Frameworks, wie zum Beispiel Express, ein leichtes Web-Framework, über das wir in diesem Kapitel sprechen werden.

Express ist ein einfaches und flexibles Node.js-Framework für die Entwicklung von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, wie zum Beispiel: Vorlagenanalyse, statische Dateibereitstellung, Middleware, Routing-Steuerung usw., und Sie können auch Plug-Ins verwenden. Ins oder Integrationen Andere Module helfen Ihnen beim Erstellen verschiedener Web- und Mobilgeräteanwendungen. Es ist derzeit das beliebteste Webentwicklungsframework auf Basis von Node.js und unterstützt verschiedene Vorlagen wie EJS und Jade, sodass Sie schnell eine Website mit vollständigen Funktionen erstellen können .

Okay, fangen wir an!

1. NPM-Installation

npm install express

2. Erhalten und zitieren Sie

var express = require('express');
var app = express();

Über die Variable „App“ können wir verschiedene Express-Methoden aufrufen. Der Spaß hat gerade erst begonnen, machen Sie weiter so!

Antrag erstellen
Nachdem wir das Express-Framework kennengelernt hatten, begannen wir mit der Erstellung unserer ersten Express-Anwendung.

Fügen Sie den folgenden Inhalt zu unserer Standardprojekthauptdatei app.js hinzu:

var express = require('express');
var app = express();
app.get('/', function (request, response) {
  response.send('Hello World!');
});

app.listen(80);

Hinweis: In den folgenden Kursen verwenden wir Port 80, um auf Anfragen zu warten.

Überprüfen Sie nach dem Hinzufügen den Browserinhalt über die „Testadresse“ in der rechten Spalte. Wenn Sie den Inhalt „Hallo Welt!“ sehen, bedeutet dies, dass eine einfache Express-Anwendung erfolgreich erstellt wurde.

Anfrage erhalten
Zuvor haben wir eine einfache Express-Anwendung implementiert. Jetzt beginnen wir mit der detaillierten Beschreibung der spezifischen Implementierung. Zunächst lernen wir die gängigen Methoden von Express kennen.

get-Methode – verarbeitet vom Client ausgegebene GET-Anfragen gemäß dem Anforderungspfad.

Format:

app.get(path,function(request, response));

Pfad ist der Pfad der Anforderung, und der zweite Parameter ist die Rückruffunktion zur Verarbeitung der Anforderung. Es gibt zwei Parameter, Anforderung und Antwort, die Anforderungsinformationen und Antwortinformationen darstellen.

Beispiel unten:

var express = require('express');
var app = express();

app.get('/', function(request, response) {
  response.send('Welcome to the homepage!');
});
app.get('/about', function(request, response) {
  response.send('Welcome to the about page!');
});
app.get("*", function(request, response) {
  response.send("404 error!");
});
app.listen(80);

Im obigen Beispiel wird die Verarbeitungsmethode für den Seitenpfad, den Stammpfad und alle Pfade angegeben. Und innerhalb der Rückruffunktion verwenden Sie die Sendemethode der HTTP-Antwort, um eine Zeichenfolge an den Browser zu senden.

Beziehen Sie sich auf den obigen Code, versuchen Sie, selbst einen Abrufanforderungspfad festzulegen, und greifen Sie dann über den Browser auf die Adresse zu, um zu sehen, ob die Anforderung erfolgreich sein kann.

Middleware
1. Was ist Middleware?

Middleware ist eine Funktion, die HTTP-Anfragen verarbeitet und zum Ausführen verschiedener spezifischer Aufgaben verwendet wird, z. B. zum Überprüfen, ob der Benutzer angemeldet ist, zum Analysieren von Daten und anderen Aufgaben, die abgeschlossen werden müssen, bevor die Daten endgültig an den Benutzer gesendet werden . Sein größtes Merkmal besteht darin, dass die entsprechenden Daten nach der Verarbeitung durch eine Middleware an die nächste Middleware übergeben werden können.

2. Eine Middleware, die keine Operationen ausführt und nur das Anforderungsobjekt übergibt, wahrscheinlich so:

function Middleware(request, response, next) {
  next();
}

Der nächste im obigen Code ist die Rückruffunktion der Middleware. Wenn es einen Parameter annimmt, bedeutet dies, dass ein Fehler ausgelöst wird, und der Parameter ist der Fehlertext.

function Middleware(request, response, next) {
  next('出错了!');
}

Nachdem ein Fehler ausgelöst wurde, wird die nachfolgende Middleware nicht mehr ausgeführt, bis eine Fehlerbehandlungsfunktion gefunden wird. Wenn die nächste Methode nicht aufgerufen wird, werden die später registrierten Funktionen nicht ausgeführt.

Grundlegende Nutzung aller Funktionen
Im Gegensatz zur Funktion „get“ kann die Funktion „app.all()“ alle HTTP-Verben abgleichen, was bedeutet, dass sie Anforderungen aus allen Pfaden filtern kann. Wenn Sie die Funktion „all“ zum Definieren von Middleware verwenden, bedeutet dies, dass alle Anforderungen durchlaufen werden müssen Dies zuerst die Middleware.

Format:

app.all(path,function(request, response));

Wie unten gezeigt, verwenden wir die Funktion „all“, um die Antwortheaderattribute vor der Anfrage festzulegen.

var express = require("express");
var app = express();

app.all("*", function(request, response, next) {
  response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" }); //设置响应头属性值
next();
});

app.get("/", function(request, response) {
  response.end("欢迎来到首页!");
});

app.get("/about", function(request, response) {
  response.end("欢迎来到about页面!");
});

app.get("*", function(request, response) {
  response.end("404 - 未找到!");
});

app.listen(80);

Das „*“ in den obigen Codeparametern bedeutet, dass es für alle Pfade gültig ist. Diese Methode ist besonders nützlich, wenn ein bestimmter Präfixpfad oder ein beliebiger Pfad verarbeitet wird, sie wird die All-Funktion durchlaufen im voraus.

Wenn angezeigt, was passiert, wenn wir die Funktion „Alles“ überspringen? Probieren Sie es selbst aus?

Grundlegende Verwendung 1 verwenden
use ist die Methode von Express zum Aufrufen von Middleware und gibt eine Funktion zurück.

Format:

app.use([path], function(request, response, next){});

//可选参数path默认为"/"。

1. Middleware verwenden

app.use(express.static(path.join(__dirname, '/')));

Wie oben verwenden wir die Funktion „use“, um die Express-Middleware aufzurufen und den Zugriffspfad auf das statische Dateiverzeichnis festzulegen (hier wird davon ausgegangen, dass es sich um den Stammpfad handelt).

2. So rufen Sie zwei Middlewares kontinuierlich auf, wie im folgenden Beispiel gezeigt:

var express = require('express');
var app = express();

app.use(function(request, response, next){
 console.log("method:"+request.method+" ==== "+"url:"+request.url);
 next();
});

app.use(function(request, response){
 response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" });
 response.end('示例:连续调用两个中间件');
});

app.listen(80);

回调函数的next参数,表示接受其他中间件的调用,函数体中的next(),表示将请求数据传递给下一个中间件。

上面代码先调用第一个中间件,在控制台输出一行信息,然后通过next(),调用第二个中间件,输出HTTP回应。由于第二个中间件没有调用next方法,所以req对象就不再向后传递了。

use基本用法2
use方法不仅可以调用中间件,还可以根据请求的网址,返回不同的网页内容,如下示例:

var express = require("express");
var app = express();

app.use(function(request, response, next) {
  if(request.url == "/") {
    response.send("Welcome to the homepage!");
  }else {
    next();
  }
});

app.use(function(request, response, next) {
  if(request.url == "/about") {
    response.send("Welcome to the about page!");
  }else {
    next();
  }
});
app.use(function(request, response) {
  response.send("404 error!");
});
app.listen(80);

上面代码通过request.url属性,判断请求的网址,从而返回不同的内容。

回调函数
Express回调函数有两个参数,分别是request(简称req)和response(简称res),request代表客户端发来的HTTP请求,request代表发向客户端的HTTP回应,这两个参数都是对象。示例如下:

function(req, res) {
});

在后面的学习中,我们会经常和它打交道,牢牢记住它的格式吧!

获取主机名、路径名
今天我们就先来学习如何使用req对象来处理客户端发来的HTTP请求。

req.host返回请求头里取的主机名(不包含端口号)。

req.path返回请求的URL的路径名。

如下示例:

var express = require('express');
var app = express();

app.get("*", function(req, res) {
  console.log(req.path);
  res.send("req.host获取主机名,req.path获取请求路径名!");
});

app.listen(80);

试一试在浏览器中输入任意一个请求路径,通过req查看主机名或请求路径。

query基本用法
query是一个可获取客户端get请求路径参数的对象属性,包含着被解析过的请求参数对象,默认为{}。

var express = require('express');
var app = express();

app.get("*", function(req, res) {
  console.log(req.query.参数名);
  res.send("测试query属性!");
});

app.listen(80);

通过req.query获取get请求路径的对象参数值。

格式:req.query.参数名;请求路径如下示例:

例1: /search?n=Lenka

req.query.n // "Lenka"

例2: /shoes?order=desc&shoe[color]=blue&shoe[type]=converse

req.query.order // "desc"

req.query.shoe.color // "blue"

req.query.shoe.type // "converse"

试一试get请求一个带参数路径,使用“req.query.参数名”方法获取请求参数值。

param基本用法
和属性query一样,通过req.param我们也可以获取被解析过的请求参数对象的值。

格式:req.param("参数名");请求路径如下示例:

例1: 获取请求根路径的参数值,如/?n=Lenka,方法如下:

var express = require('express');
var app = express();

app.get("/", function(req, res) {

  console.log(req.param("n")); //Lenka

  res.send("使用req.param属性获取请求根路径的参数对象值!");

});
app.listen(80);

例2:我们也可以获取具有相应路由规则的请求对象,假设路由规则为 /user/:name/,请求路径/user/mike,如下:

app.get("/user/:name/", function(req, res) {
  console.log(req.param("name")); //mike
  res.send("使用req.param属性获取具有路由规则的参数对象值!");
});

PS:所谓“路由”,就是指为不同的访问路径,指定不同的处理方法。

看了上面的示例,试一试使用req.param属性解析一个请求路径对象,并获取请求参数值。

params基本用法
和param相似,但params是一个可以解析包含着有复杂命名路由规则的请求对象的属性。

格式:req.params.参数名;

例1. 如上课时请求根路径的例子,我们就可以这样获取,如下:

var express = require('express');
var app = express();

app.get("/user/:name/", function(req, res) {
  console.log(req.params.name); //mike
  res.send("使用req.params属性获取具有路由规则的参数对象值!");
});

app.listen(80);

查看运行结果,和param属性功能是一样的,同样获取name参数值。

例2:当然我们也可以请求复杂的路由规则,如/user/:name/:id,假设请求地址为:/user/mike/123,如下:

app.get("/user/:name/:id", function(req, res) {
  console.log(req.params.id); //"123"
  res.send("使用req.params属性复杂路由规则的参数对象值!");
});

对于请求地址具有路由规则的路径来说,属性params比param属性是不是又强大了那么一点点呢!

send基本用法
send()方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据。格式如下: res.send([body|status], [body]);

1.当参数为一个String时,Content-Type默认设置为"text/html"。

res.send('Hello World'); //Hello World

2.当参数为Array或Object时,Express会返回一个JSON。

res.send({ user: 'tobi' }); //{"user":"tobi"}
res.send([1,2,3]); //[1,2,3]

3.当参数为一个Number时,并且没有上面提到的任何一条在响应体里,Express会帮你设置一个响应体,比如:200会返回字符"OK"。

res.send(200); // OK
res.send(404); // Not Found
res.send(500); // Internal Server Error

send方法在输出响应时会自动进行一些设置,比如HEAD信息、HTTP缓存支持等等。

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vercel是什么?怎么部署Node服务?Vercel是什么?怎么部署Node服务?May 07, 2022 pm 09:34 PM

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

node.js gm是什么node.js gm是什么Jul 12, 2022 pm 06:28 PM

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

一文解析package.json和package-lock.json一文解析package.json和package-lock.jsonSep 01, 2022 pm 08:02 PM

本篇文章带大家详解package.json和package-lock.json文件,希望对大家有所帮助!

分享一个Nodejs web框架:Fastify分享一个Nodejs web框架:FastifyAug 04, 2022 pm 09:23 PM

本篇文章给大家分享一个Nodejs web框架:Fastify,简单介绍一下Fastify支持的特性、Fastify支持的插件以及Fastify的使用方法,希望对大家有所帮助!

怎么使用pkg将Node.js项目打包为可执行文件?怎么使用pkg将Node.js项目打包为可执行文件?Jul 26, 2022 pm 07:33 PM

如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将Node.js项目打包为可执行文件的方法,希望对大家有所帮助!

node爬取数据实例:聊聊怎么抓取小说章节node爬取数据实例:聊聊怎么抓取小说章节May 02, 2022 am 10:00 AM

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

手把手带你使用Node.js和adb开发一个手机备份小工具手把手带你使用Node.js和adb开发一个手机备份小工具Apr 14, 2022 pm 09:06 PM

本篇文章给大家分享一个Node实战,介绍一下使用Node.js和adb怎么开发一个手机备份小工具,希望对大家有所帮助!

图文详解node.js如何构建web服务器图文详解node.js如何构建web服务器Aug 08, 2022 am 10:27 AM

先介绍node.js的安装,再介绍使用node.js构建一个简单的web服务器,最后通过一个简单的示例,演示网页与服务器之间的数据交互的实现。

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.