Maison  >  Article  >  interface Web  >  Exemple de soumission de formulaire http dans Nodejs

Exemple de soumission de formulaire http dans Nodejs

零下一度
零下一度original
2017-07-09 10:15:191147parcourir

Cet article présente principalement en détail la soumission du formulaire http de Nodejs, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à

La requête du module http a été introduite avant Le processus de réponse <.> introduit également la transmission de données entre le client et le serveur du protocole TCP. Le protocole http est le protocole de couche supérieure de TCP. Ici, nous créons un serveur Web simple et traitons les données du formulaire soumis, comme résumé dans l'incroyable livre Node.js.

Méthode POST pour soumettre les données du formulaire

Comme je l'ai résumé précédemment, la soumission des données au serveur nécessite la méthode POST et la méthode GET

les informations sur les demandes sont toutes dans la chaîne de requête , il n'y a pas de corps de demande et les données transmises par la méthode POST sont toutes dans le corps de la demande, la méthode POST doit donc être utilisée lors de la soumission du formulaire données.

req est les informations de la demande, req.url représente l'adresse demandée. Lorsque le serveur est en cours d'exécution, l'URL demandée par req est 127.0.0.1:3000. À ce stade, req.url est '. /', alors return est une chaîne de données de formulaire. La méthode définie dans les données du formulaire est post, l'

action est '/url', la méthode de soumission de surface des données est POST et l'adresse à soumettre. les données sont 127.0.0.1:3000/url, et après la soumission, une nouvelle page doit être obtenue, qui est 127.0.0.1:3000/url. À ce stade, req.url est '/url', donc une autre page est. affiché.


 //提交表单数据
 var http=require(&#39;http&#39;);
 var querystring=require(&#39;querystring&#39;);
 
 var server=http.createServer(function (req,res) {
 //req.url不同则返回的页面不同
 if(&#39;/&#39;==req.url){
  res.writeHead(200,{&#39;Content-Type&#39;:&#39;text/html&#39;});
  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;);
 });
Après la soumission, vous devez obtenir le corps de la demande des informations de la demande, car les informations de la méthode POST sont dans le corps de la demande, utilisez req pour lier l'événement de données pour obtenir les données, ici Il convient de noter que les données doivent être exploitées une fois la réception des données terminée, c'est-à-dire que l'événement de fin doit être lié pour surveiller si les informations de demande ont été transmises.


Querystring est un module de chaîne de requête, utilisé pour analyser les chaînes de requête. La méthode parse analyse la chaîne de requête dans un objet. Exécutez le serveur dans git et obtenez la page comme ceci :


Après avoir soumis les données :


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn