NodeJS GET 와 POST 가 요청 한 예제 코드 를 받 습 니 다.

6869 단어 NodeJSGETPOST
본 고 는 NodeJS 가 GET 와 POST 가 요청 한 예시 코드 를 소개 하고 여러분 에 게 공유 하 며 자신 에 게 도 필 기 를 남 겼 습 니 다.

express 프레임 수신

app.get('/',function(req,res) {

  var url = req.query.url;

  var name = req.query.name;

  console.log(url, name);

}); 
2 수신 Get
1.get 매개 변 수 는 req.url 에 있 습 니 다.
2.url.parse 를 사용 하여 데 이 터 를 문자열 에서 obj 로 변환 합 니 다.
index.js:

var http = require('http');

var url = require('url');

var util = require('util');

 

//req       res    

http.createServer(function(req, res){

  res.writeHeader(200, {'Content-Type':'text/javascript;charset=UTF-8'}); //   +     

 

  //    url   

  var params = url.parse(req.url, true).query; //parse        ,req.url="/?url=123&name=321",true  params {url:"123",name:"321"},false  params url=123&name=321

  res.write("   :" + params.name);

  res.write("
"); res.write(" URL:" + params.url); res.end(); }).listen(3000);
브 라 우 저 열기:http://127.0.0.1:3000/?url=123&name=321
웹 페이지 표시:
사이트 이름:321
사이트 URL:123
3 발송 Get
index.js:

var http = require('http'); 

  

var qs = require('querystring'); 

  

var data = { 

  a: 123, 

  time: new Date().getTime()};//          

  

  

var content = qs.stringify(data); 

  

var options = { 

  hostname: '127.0.0.1', 

  port: 10086, 

  path: '/pay/pay_callback?' + content, 

  method: 'GET' 

}; 

  

var req = http.request(options, function (res) { 

  console.log('STATUS: ' + res.statusCode); 

  console.log('HEADERS: ' + JSON.stringify(res.headers)); 

  res.setEncoding('utf8'); 

  res.on('data', function (chunk) { 

    console.log('BODY: ' + chunk); 

  }); 

}); 

  

req.on('error', function (e) { 

  console.log('problem with request: ' + e.message); 

}); 

  

req.end(); 

포스트 4 접수
 이 페이지 를 요청 할 때 post 데이터 에 name 과 url 이 없 으 면 제출 페이지 로 돌아 갑 니 다.name 과 url 이 있 으 면 인쇄 합 니 다.
1.post 요청 은"data"이 벤트 를 촉발 합 니 다.
2.chuck 사용+=저장,favicon.ico 추가 요청 으로 body={}.
3.종료 요청 시"end"이벤트 가 발생 합 니 다.chuck 반 직렬 화 query string.parse(body)를 대상 배열 로 body.name 을 사용 하여 post 변 수 를 방문 합 니 다.
index.js:

var http = require('http');

var querystring = require('querystring');

 

var postHTML =

  '<html><head><meta charset="utf-8"><title>     Node.js   </title></head>' +

  '<body>' +

  '<form method="post">' +

  '   : <input name="name"><br>' +

  '   URL: <input name="url"><br>' +

  '<input type="submit">' +

  '</form>' +

  '</body></html>';

 

http.createServer(function (req, res) {

  //       

  var body = "";

 

  //    

  console.log(req.url);

 

  //          ,   post 

  req.on('data', function (chunk) {

    body += chunk; //     +=,  body=chunk,    favicon.ico,body   {}

    console.log("chunk:",chunk);

  });

 

  // end     ,  querystring.parse post      POST    ,        。

  req.on('end', function () {

    //     

    body = querystring.parse(body); //               

    console.log("body:",body);

    //            \<br><br>   res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'}); 



 

    if(body.name && body.url) { //        

      res.write("   :" + body.name);

      res.write("<br>");

      res.write("   URL:" + body.url);

    } else { //     

      res.write(postHTML);

    }

    res.end();

  });

}).listen(3000); 

브 라 우 저 에서 열기:http://127.0.0.1:3000/
첫 번 째 방문 127.0.0.1,post 에 name 과 url 이 없어 제출 페이지 를 표시 합 니 다.

제출 을 클릭 하면 웹 페이지 는 다음 과 같은 결 과 를 출력 합 니 다.

질문:
1.req.on("end"이 벤트 는 여러 번 실 행 됩 니 다.favicon.ico 에 요청 할 테 니까.

2.  res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'});
text/html 은 파일 의 content-type 을 text/html 형식 으로 설정 하고 브 라 우 저 는 이 파일 을 가 져 올 때 html 해상도 기 를 자동 으로 호출 하여 파일 을 처리 합 니 다.
text/plain 은 파일 을 일반 텍스트 로 설정 하고 브 라 우 저 는 이 파일 을 가 져 올 때 처리 하지 않 습 니 다.
5.포스트 보 내기
index.js:

var http = require('http');

var querystring = require('querystring');

 

var contents = querystring.stringify({

  name:'byvoid',

  email:'[email protected]',

  address:'Zijing'

});

 

var options = {

  host:'www.byvoid.com',

  path:'/application/node/post.php',

  method:'POST',

  headers:{

    'Content-Type':'application/x-www-form-urlendcoded',

    'Content-Length':contents.length

  }

}

 

var req = http.request(options, function(res){

  res.setEncoding('utf8');

  res.on('data',function(data){

    console.log("data:",data);  //  html  

  });

});

 

req.write(contents);

req.end; 

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기