nodejs 의 koa 2 요청 예제(GET,POST)

GET 요청
koa 에서 GET 는 요청 데이터 request 대상 의 query 방법 과 query string 방법 을 요청 합 니 다.query 방법 은 포맷 된 매개 변 수 를 되 돌려 줍 니 다.query string 방법 은 요청 문자열 을 되 돌려 줍 니 다.잔말 말고 코드 를 바로 달 아 라.
app.js 에 다음 코드 를 추가 합 니 다.

router.get('/getData', async (ctx,next) => {
  //      request     
  let request = ctx.request;
  let req_query = request.query; //        
  let req_querystring = request.querystring; //      

  //          
  let ctx_query = ctx.query;
  let ctx_querystring = ctx.querystring;
  let obj = {
    req_query:req_query,
    req_querystring:req_querystring,
    ctx_query:ctx_query,
    ctx_querystring:ctx_querystring
  };
  ctx.response.body = {status:200,msg:'  get       ',data:obj};
});
index.html 에 jquery 를 도입 합 니 다.jquery 의 ajax 를 사용 하고 다음 코드 를 추가 하기 때 문 입 니 다.

var getTest = () => {
  $.ajax({
    type:'GET',
    url:'/getData?a=1&b=2&c=3',
    dataType:'json',
    success(data){
      console.log(data);
    },
    error (err){
      console.log(err);
    }
  });
}
//       
<button onclick="getTest()">    get  </button>
항목 을 실행 하고 단 추 를 누 르 면 콘 솔 에서 데 이 터 를 출력 합 니 다.결 과 는 다음 과 같 습 니 다.

POST 요청
koa 는 post 요청 에 대한 인 자 를 봉인 하지 않 았 기 때문에 원생 nodejs 요청 대상 req 를 통 해 post 요청 데 이 터 를 string(예 를 들 어 a=1&b=2&c=3)으로 해석 해 야 합 니 다.
다시 string 을 json 형식 으로 해석 합 니 다(예:{"a":1","b":"2","c":"3"})
app.js 에 다음 코드 를 추가 합 니 다.

router.post('/postData',async (ctx,next) => {
  let postData = await parsePostData(ctx);
  console.log(postData);
  ctx.response.body = {status:200,msg:'  post       ',data: postData};
});

//       node     POST  
function parsePostData( ctx ) {
  return new Promise((resolve, reject) => {
    try {
      let postdata = "";
      ctx.req.addListener('data', (data) => {
        postdata += data
      })
      ctx.req.addListener("end",function(){
        let parseData = parseQueryStr( postdata )
        resolve( parseData )
      })
    } catch ( err ) {
      reject(err)
    }
  })
}

//  POST          JSON
function parseQueryStr( queryStr ) {
  let queryData = {}
  let queryStrList = queryStr.split('&')
  console.log( queryStrList )
  for ( let [ index, queryStr ] of queryStrList.entries() ) {
    let itemList = queryStr.split('=')
    queryData[ itemList[0] ] = decodeURIComponent(itemList[1])
  }
  return queryData
}
index.html 에 다음 코드 추가:

var postTest = () => {
  let obj = {
    name:'   ',
    description:'        '
  };
  $.ajax({
    type:'POST',
    url:'/postData',
    dataType:'json',
    data:obj,
    success(data){
      console.log(data);
    },
    error (err){
      console.log(err);
    }
  });
}
//     post     
<button onclick="postTest()">    post  </button>
실행,단 추 를 누 르 면 다음 과 같은 데 이 터 를 출력 합 니 다.

express 에 익숙 한 저 에 게 이런 post 에서 매개 변 수 를 얻 는 방식 은 저 를 매우 불쾌 하 게 합 니 다.다행히 koa-body parser 미들웨어 가 이 문 제 를 해결 하 였 습 니 다.
koa-bodyparser
설치 하 다.

npm i koa-bodyparser Csave
app.js 에 모듈 도입

//     
const bodyParser = require('koa-bodyparser');
//    app
app.use(bodyParser());
그리고 post 방법 을

router.post('/postData',async (ctx,next) => {
  let postData = ctx.request.body;
  ctx.response.body = {status:200,msg:'  post       ',data: postData};
});
이렇게 하면 너무 간단 하고 눈 과 마음 을 즐겁게 하 며 그 결 과 는 위의 것 과 같다.
이로써 koa 요청 방법 소개 가 끝나 면 코드 를 즐겁게 쓸 수 있 습 니 다.다음 편 에 서 는 동생 이 koa 의 오류 처 리 를 기록 하 겠 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기