In der Webentwicklung gibt es viele Gelegenheiten, in denen wir Formulardaten per POST übermitteln und dann nach der entsprechenden Verarbeitung im Hintergrund zu einer anderen Seite springen müssen. Wie erhält man bei Verwendung von Node.js als Backend die Daten der POST-Anfrage und verarbeitet sie entsprechend?
In diesem Artikel wird erläutert, wie Sie Node.js verwenden, um eine POST-Sprungseite zu erhalten. Der Inhalt umfasst hauptsächlich die folgenden Inhalte:
1. Verstehen Sie die Prinzipien der POST-Anfrage und der Sprungseite
Im HTTP-Protokoll gibt es zwei gängige Anfragemethoden, nämlich GET und POST. GET-Anfragen werden verwendet, um vorhandene Ressourcen anzufordern (z. B. das Anzeigen eines Bildes), während POST-Anfragen zum Senden von Daten an den Server verwendet werden. Diese Daten werden zum Erstellen oder Ändern von Ressourcen verwendet, z. B. zum Senden von Formulardaten.
In Webanwendungen müssen wir oft zu verschiedenen Seiten springen. Das Springen zu einer Seite kann durch Festlegen des Standorts im HTTP-Antwortheader erfolgen, zum Beispiel:
HTTP/1.1 302 Found Location: http://www.example.com/new-page.html
Wenn der Browser diese Antwort empfängt, springt er automatisch zur angegebenen Seite.
2. Verwenden Sie Node.js, um POST-Anfragedaten zu erhalten.
Node.js bietet ein HTTP-Modul, mit dem ein Webserver erstellt werden kann. Um POST-Anfragedaten zu erhalten, kann das Anfrageereignis verwendet werden. Wenn der Browser eine Anfrage an den Server sendet, löst der Server das Anfrageereignis aus und übergibt das Anfrageobjekt und das Antwortobjekt an die entsprechende Rückruffunktion. Die Schritte zum Abrufen von POST-Anfragedaten im Anfrageereignis sind wie folgt:
Erstellen Sie eine Variable in der Rückruffunktion, um den Inhalt der Post-Anfrage zu speichern
let postData = '';
Hören Sie sich das Datenereignis an, das jederzeit ausgelöst wird Anforderungsdaten werden empfangen
req.on('data', chunk => { postData += chunk.toString(); });
req zeigt auf das Anforderungsobjekt, wobei data die im Anforderungsobjekt enthaltenen Daten darstellt und chunk den empfangenen Datenblock darstellt.
Hören Sie sich das Endereignis an, das anzeigt, dass der Datenempfang abgeschlossen ist
req.on('end', () => { console.log(postData); });
Nachdem der Datenempfang abgeschlossen ist, können postData entsprechend verarbeitet werden.
3. Verarbeiten Sie die POST-Anfragedaten und springen Sie zur angegebenen Seite.
Nachdem wir die POST-Anfragedaten erhalten haben, müssen wir die entsprechende Verarbeitung durchführen und dann zur angegebenen Seite springen. Die spezifischen Implementierungsschritte lauten wie folgt:
Führen Sie die http- und Querystring-Module von Node.js ein
const http = require('http'); const querystring = require('querystring');
Verarbeiten Sie POST-Anforderungsdaten im Anforderungsereignis
req.on('data', chunk => { postData += chunk.toString(); }); req.on('end', () => { const data = querystring.parse(postData); // 相应的处理逻辑 });
Nachdem die Daten empfangen wurden, können Sie das Querystring-Modul verwenden um postData in ein JavaScript-Objekt umzuwandeln, um die Verarbeitung zu erleichtern.
Antwort auf Sprungseite
res.writeHead(302, { Location: '/new-page.html' }); res.end();
Stellen Sie die Position im Antwortheader auf den Pfad der Seite ein, zu der Sie springen möchten.
4. Beispieldemonstration
Zur Zweckmäßigkeit der Demonstration wird hier ein einfacher Webserver simuliert, der das http-Modul von Node.js verwendet, um POST-Anfragen zu verarbeiten und zu einer neuen Seite zu springen.
const http = require('http'); const querystring = require('querystring'); const server = http.createServer((req, res) => { if(req.method === 'POST') { let postData = ''; req.on('data', chunk => { postData += chunk.toString(); }); req.on('end', () => { const data = querystring.parse(postData); console.log(data); // 响应跳转到新页面 res.writeHead(302, { Location: '/new-page.html' }); res.end(); }); } else { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(` <form method="post"> <input type="text" name="name" value=""/> <input type="submit" value="Submit"/> </form> `); res.end(); } }); server.listen(8000);
Nachdem der Server gestartet wurde, können Sie durch Zugriff auf http://localhost:8000 eine einfache Formularseite zum Senden von Daten sehen. Nach dem Absenden der Formulardaten wird dann zu einer neuen Seite gesprungen.
Zusammenfassung
Mit den oben genannten Schritten können Sie bei Verwendung von Node.js als Backend problemlos die POST-Anfragedaten abrufen, verarbeiten und entsprechend zur angegebenen Seite springen. In der Praxis können je nach Bedarf entsprechende Anpassungen und Verbesserungen vorgenommen werden.
Das obige ist der detaillierte Inhalt vonnodejs erhält die Post-Jump-Seite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!