Heim > Web-Frontend > js-Tutorial > Hauptteil

Lassen Sie uns über Get/Post-Anfragen und Middleware in NodeJS sprechen

青灯夜游
Freigeben: 2021-12-08 19:01:04
nach vorne
2093 Leute haben es durchsucht

Dieser Artikel führt Sie durch den Hot-Restart, das Abrufen von Anfragen, das Posten von Anfragen und die Middleware in node.js. Ich hoffe, er wird Ihnen hilfreich sein!

Lassen Sie uns über Get/Post-Anfragen und Middleware in NodeJS sprechen

1. Installieren Sie

npm i nodemon

2. Führen Sie

nodemon .bin/www aus

2 get-Anfrage

Im Allgemeinen wird get in der Website-Entwicklung für die Datenerfassung und -abfrage verwendet, ähnlich wie bei der Abfrageoperation in der Datenbank. Wenn der Server die Front-End-Ressource analysiert, wird der entsprechende Inhalt übertragen auf der URL, zum Beispiel:

http://localhost:8080/login?goods1=0001&goods2=0002

Holen Sie sich die Front-End-Get-Anfrage

Die vom Benutzer gesendete Get-Anfrage kann über req.query und dann über node abgerufen werden. Der Vorgang gibt die entsprechenden Daten an den Benutzer zurück.

Wenn Folgendes gesendet wird:

http://localhost:8080/login?goods1=0001&goods2=0002

Die Antwort erfolgt durch:

req.query
Nach dem Login kopieren

Er erhält alle Daten oder
req.query.goods1
req.query.goods2
Nach dem Login kopieren

allein Oder gehen Sie zu allen Daten. Kurz gesagt, unterschiedliche Anforderungen entsprechen unterschiedlichen Unternehmen, und jeder kann sie entsprechend seinen eigenen Anforderungen erhalten

node:

rrree

3. Über die POST-Anfrage: Die Post-Methode ist ein wichtiger Teil der http-Anfrage. Im Gegensatz zu get ähnelt die Post-Anfrage eher der Durchführung von Änderungsvorgängen auf dem Server wird im Allgemeinen für Datenressourcenaktualisierungen verwendet. Im Vergleich zu Get-Anfragen sind die per Post angeforderten Daten sicherer. Im vorherigen Kapitel haben wir festgestellt, dass bei der Get-Anfrage der eingegebene Benutzername und das eingegebene Passwort in der Adressleiste angezeigt werden (bei Chinesisch werden sie in BASE64-Verschlüsselung konvertiert), während bei der Post-Anfrage die Daten in den Hauptteil der Adresse eingefügt werden http-Paket, das es anderen unmöglich macht, Benutzernamen und Passwort direkt zu sehen!

So richten Sie eine POST-Anfrage in Express ein

1 Zunächst müssen wir wissen, wie Sie eine Post-Anfrage im Formular

stellen, das hauptsächlich zum Hochladen von Dateien verwendet wird:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="http://localhost:8080/login" method="get">
            用户:
            <input type="text" name="user" id="user" placeholder="用户名"/>
            <br>
            密码:
            <input type="password" name="password" id="password" placeholder="密码"/>
            <br>
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>
Nach dem Login kopieren

2. Richten Sie die Parsing-Body-Middleware ein

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

app.get("/",function(req,res){
    res.send("主页");
});

app.get("/login",function(req,res){
    console.log(req.query);
    res.send("登录路由,user为:"+req.query.user+"==>   password为:"+req.query.password);
});

app.listen(8080);
Nach dem Login kopieren

Login-Fall:

HTML:

<form action="#" method="post" enctype="application/x-www-form-urlencoded">
</form>
Nach dem Login kopieren

4. Middleware Aus dem Wörtlichen Das heißt, wir können verstehen, dass es sich wahrscheinlich um einen Zwischen-Proxy-Vorgang handelt. In den meisten Fällen führt Middleware zwischen dem Empfang einer Anfrage und dem Senden einer Antwort eine Reihe von Vorgängen aus. Tatsächlich ist Express ein Routing- und Middleware-Webframework, und eine Express-Anwendung besteht im Grunde aus einer Reihe von Middleware-Funktionsaufrufen.

1. Der Browser sendet eine Anfrage

enctype属性一般设置为“application/x-www-form-urlencoded”,如果设置成multipart/form-dataDer Prozess der Zwischenverarbeitung

3. Die Routing-Funktion übernimmt das Rendering (req, res)

Die Middleware Die Funktion kann die folgende Aufgabe ausführen:

Beliebigen Code ausführen.

Änderungen an Anforderungs- und Antwortobjekten vornehmen.

Beenden Sie die Anfrage-/Antwortschleife.

Rufen Sie die nächste Middleware-Funktion im Stapel auf.

Middleware ist auch in Middleware der Anwendungsschicht, Routing-Middleware, integrierte Middleware, Fehlerbehandlungs-Middleware und Middleware von Drittanbietern unterteilt. Im Folgenden wird Folgendes erläutert:

1. Middleware auf Anwendungsebene

Die Middleware auf Anwendungsebene wird mithilfe von app.use und app.METHOD() an das App-Objekt gebunden – Methoden, die HTTP-Anfragen verarbeiten müssen, z B. GET, PUT, POST, ersetzen Sie einfach das vorherige get oder post durch use. Zum Beispiel das folgende Beispiel:

app.use(express.urlencoded())
Nach dem Login kopieren

Zu diesem Zeitpunkt werden wir feststellen, dass die Adresse

http://localhost:8080/

geladen wurde, in der Befehlszeile jedoch „Vor dem Zugriff“ angezeigt wird, was darauf hinweist, dass das Programm dies nicht tun wird synchron ausgeführt werden. Wenn die Route weiterhin nach unten übereinstimmt, können Sie die Homepage-Daten erneut abrufen:

req.body.username
Nach dem Login kopieren

Natürlich können Sie das Schreiben auch vereinfachen:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h1>登陆</h1>
    <form action="/login" method="POST">
        <div>
            用户名:<input type="text" name="username">
        </div>
        <div>
            密码:<input type="password" name="password">
        </div>
        <button>登陆</button>
    </form>
      
</body>
</html>
Nach dem Login kopieren
    Daher möchten Sie vorher etwas tun Wenn Sie einen Routenabgleich durchführen oder erneut aufzeichnen und die Ausführung nach unten fortsetzen, ist Middleware auf Anwendungsebene zweifellos eine gute Wahl.
  • 2.路由中间件

    路由级中间件和应用级中间件类似,只不过他需要绑定express.Router();

    var router = express.Router()
    Nach dem Login kopieren

    在匹配路由时,我们使用 router.use() 或 router.VERB() ,路由中间件结合多次callback可用于用户登录及用户状态检测。

    const express = require("express");
    var app = express();
    var router=express.Router();
    
    router.use("/",function(req,res,next){
        console.log("匹配前");
        next();
    });
    
    router.use("/user",function(req,res,next){
        console.log("匹配地址:",req.originalUrl);
        next();
    },function(req,res){
        res.send("用户登录");
    });
    
    app.use("/",router);
    
    app.listen(8080);
    Nach dem Login kopieren

    总之在检测用户登录和引导用户应该访问哪个页面是,路由中间件绝对好用。

    3.错误处理中间件

    顾名思义,它是指当我们匹配不到路由时所执行的操作。错误处理中间件和其他中间件基本一样,只不过其需要开发者提供4个自变量参数。

    app.use((err, req, res, next) => {
            res.sendStatus(err.httpStatusCode).json(err);
    });
    Nach dem Login kopieren

    一般情况下,我们把错误处理放在最下面,这样我们即可对错误进行集中处理。

    const express=require("express");
    
    var app=express();
    
    app.get("/",function(req,res,next){
        const err=new Error(&#39;Not Found&#39;);
        res.send("主页");
        next(err);
    });
    
    app.use("/user",function(err,req,res,next){
        console.log("用户登录");
        next(err);
    },function(req,res,next){
        res.send("用户登录");
        next();
    });
    
    app.use(function(req,res){
        res.status(404).send("未找到指定页面");
    });
    
    app.listen(8080);
    Nach dem Login kopieren

    4.内置中间件

    从版本4.x开始,Express不再依赖Content,也就是说Express以前的内置中间件作为单独模块,express.static是Express的唯一内置中间件。

    express.static(root, [options]);
    Nach dem Login kopieren

    通过express.static我们可以指定要加载的静态资源。

    5.第三方中间件

    形如之前我们的body-parser,采用引入外部模块的方式来获得更多的应用操作。如后期的cookie和session。

    var express = require(&#39;express&#39;);
    var app = express();
    var cookieParser = require(&#39;cookie-parser&#39;);
    Nach dem Login kopieren

    以上就是关于express中间件类型,在实际项目中,中间件都是必不可少的,因此熟悉使用各种中间件会加快项目的开发效率。

    更多node相关知识,请访问:nodejs 教程!!

    Das obige ist der detaillierte Inhalt vonLassen Sie uns über Get/Post-Anfragen und Middleware in NodeJS sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!