nodejs 의 koa 2 요청 예제(GET,POST)
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 의 오류 처 리 를 기록 하 겠 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법Express에서 오류를 처리하는 여러 가지 방법이 있습니다. 이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다. 또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다. 이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.