nodejsのkoa 2--お願いします.


nodejsのkoa 2–お願いします.
GET要求
koaでは、GET要求データrequestオブジェクト中のquery方法とquerystring方法があり、query方法はフォーマットされたパラメータを返します.querystring方法は要求文字列を返します.余計なことを言わないで、直接コードしてください.
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);
        }
    });
}
//       

プロジェクトを実行して、ボタンをクリックしてからコンソールからデータを印刷します.結果は次の通りです.
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.1に以下のコードを追加します.
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     

運転します.ボタンを押すと次のようなデータが印刷されます.
expressを使い慣れた私にとって、このようなpostはパラメータを獲得する方式が非常に不愉快です.幸いにも、koa-bodyparserの中間部品はこの問題を解決しました.
koa-bodyparser
インストール
npm i koa-bodyparser–save
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のエラー処理を記録します.
本文は手で打つだけです.不適切なところがあれば、メッセージをください.友達に助けがあれば、いいですね.ありがとうございます.