>  기사  >  웹 프론트엔드  >  Nodejs의 http 양식 제출 예

Nodejs의 http 양식 제출 예

零下一度
零下一度원래의
2017-07-09 10:15:191102검색

이 글은 주로 Nodejs의 http 폼 제출을 자세하게 소개하고 있으며, 관심있는 친구들이 참고할 수 있습니다.

http 모듈의 요청 및 응답 과정도 소개되어 있습니다. TCP 프로토콜의 클라이언트와 서버 간의 데이터 전송 http 프로토콜은 TCP의 상위 계층 프로토콜입니다. 여기서는 훌륭한 Node.js 책에 요약된 대로 간단한 웹 서버를 만들고 제출된 양식 데이터를 처리합니다.

양식 데이터를 제출하는 POST 메서드

앞서 서버에 데이터를 제출하려면 POST 메서드를 사용해야 한다고 요약했습니다. GET 메서드의 요청 정보는 모두 쿼리 string에 있습니다. 그리고 요청 바디는 없고 POST 방식으로 전송한 데이터는 요청 바디에 있기 때문에 폼 데이터 제출 시에는 POST 방식을 사용해야 합니다.

  req는 요청 정보, req.url은 서버가 실행 중일 때 req가 요청한 URL은 127.0.0.1:3000이며, 이때 req.url은 '/'이며 문자열입니다. , 양식 데이터에 설정된 방법은 post, action은 '/url', 표면 제출 방법은 POST, 데이터를 제출할 주소는 127.0.0.1:3000/url, 이후 제출 시에는 새로운 페이지 즉, 127.0.0.1:3000/url을 얻어야 합니다. 이때 req.url은 '/url'이므로 다른 페이지가 표시됩니다.


 //提交表单数据
 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;);
 });

제출 후에는 POST 메소드의 정보가 요청 본문에 있으므로 요청 본문을 가져와야 합니다. 데이터를 얻으려면 데이터 이벤트를 바인딩해야 합니다. 여기서는 데이터 수신이 완료된 후에 수행해야 한다는 점에서 데이터에 대한 작업을 수행하려면 요청 정보가 전송되는지 모니터링하기 위해 종료 이벤트를 바인딩해야 합니다.

 querystring은 쿼리 문자열을 구문 분석하는 데 사용되는 쿼리 문자열 모듈입니다. 구문 분석 메서드는 쿼리 문자열을 개체로 구문 분석합니다. git에서 서버를 실행하고 다음과 같은 페이지를 가져옵니다.


데이터를 제출한 후:

위 내용은 Nodejs의 http 양식 제출 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.