Heim  >  Artikel  >  Web-Frontend  >  Beispiel für die Übermittlung eines HTTP-Formulars in Nodejs

Beispiel für die Übermittlung eines HTTP-Formulars in Nodejs

零下一度
零下一度Original
2017-07-09 10:15:191102Durchsuche

In diesem Artikel wird hauptsächlich die http-Formularübermittlung von Nodejs im Detail vorgestellt, die einen bestimmten Referenzwert hat. Interessierte Freunde können sich auf

Die Anforderung des http-Moduls beziehen, die vor dem Antwortprozess führt auch die Datenübertragung zwischen dem Client und dem Server des TCP-Protokolls ein. Das http-Protokoll ist das Protokoll der oberen Schicht von TCP. Hier erstellen wir einen einfachen Webserver und verarbeiten die übermittelten Formulardaten, wie im erstaunlichen Buch Node.js zusammengefasst.

POST-Methode zum Senden von Formulardaten

Wie ich bereits zusammengefasst habe, erfordert das Senden von Daten an den Server die POST-Methode und die GET-Methode

Anforderungsinformationen befinden sich alle in der Abfrage Zeichenfolge , es gibt keinen Anforderungstext und die von der POST-Methode übertragenen Daten befinden sich alle im Anforderungstext, daher muss beim Absenden des Formulars die POST-Methode verwendet werden Daten.

req ist die Anforderungsinformation, req.url stellt die angeforderte Adresse dar. Wenn der Server ausgeführt wird, lautet die von req angeforderte URL 127.0.0.1:3000. Zu diesem Zeitpunkt lautet req.url „. /‘, dann ist return eine Zeichenfolge mit Formulardaten. Die in den Formulardaten festgelegte Methode ist „post“, die

Aktion ist „/url“, die Oberflächenübermittlungsmethode für Daten ist POST und die zu übermittelnde Adresse Die Daten lauten 127.0.0.1:3000/URL, und nach der Übermittlung muss eine neue Seite abgerufen werden, nämlich 127.0.0.1:3000/URL. Zu diesem Zeitpunkt ist req.url „/url“, also eine andere Seite angezeigt.


 //提交表单数据
 var http=require('http');
 var querystring=require('querystring');
 
 var server=http.createServer(function (req,res) {
 //req.url不同则返回的页面不同
 if('/'==req.url){
  res.writeHead(200,{'Content-Type':'text/html'});
  res.write([
  &#39;<form method="post" action="/url">&#39;,
  &#39;<h1>My Form</h1>&#39;,
  &#39;<fieldset>&#39;,
  &#39;<label>Personal Information</label>&#39;,
  &#39;<p>What is your name?</p>&#39;,
  &#39;<input type="text" name="name">&#39;,
  &#39;<button>submit</button>&#39;,
  &#39;</form>&#39;
  ].join(&#39;&#39;));
  res.end();
 }else if(&#39;/url&#39;==req.url&&req.method==&#39;POST&#39;){
  var reqBody=&#39;&#39;;
  req.on(&#39;data&#39;,function (data) {
  reqBody += data;
  });
  req.on(&#39;end&#39;,function () {//用于数据接收完成后再获取
  res.writeHead(200,{&#39;Content-Type&#39;:&#39;text/html&#39;});
  res.write(&#39;you have sent a &#39;+req.method+&#39; request\n&#39;);
  res.write(&#39;<p>Content-Type:&#39;+req.headers[&#39;content-type&#39;]+&#39;</p>&#39;
   +&#39;<p>Data:your name is &#39;+querystring.parse(reqBody).name+&#39;</p>&#39;);
  res.end();
  })
 }else{
  res.writeHead(404);
  res.write(&#39;Not Found&#39;);
  res.end();
 }
 }).listen(3000,function () {
 console.log(&#39;server is listening 3000&#39;);
 });
Nach der Übermittlung müssen Sie den Anforderungstext der Anforderungsinformationen abrufen, da sich die Informationen in der POST-Methode im Anforderungstext befinden. Verwenden Sie zum Binden req Das Datenereignis zum Abrufen der Daten. Hier ist zu beachten, dass die Daten nach Abschluss des Datenempfangs verarbeitet werden müssen, dh das Endereignis muss an die Überwachung gebunden sein, ob die Anforderungsinformationen übertragen wurden.


Querystring ist ein Abfragezeichenfolgenmodul, das zum Parsen von Abfragezeichenfolgen verwendet wird. Die Parse-Methode analysiert die Abfragezeichenfolge in ein Objekt. Führen Sie den Server in Git aus und erhalten Sie die Seite wie folgt:


Nach dem Absenden der Daten:


Das obige ist der detaillierte Inhalt vonBeispiel für die Übermittlung eines HTTP-Formulars in Nodejs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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