koaを使って簡単なインターフェースを作り、データを得る.

8136 ワード

1.先にkoa-routerをインストールする
npm install koa-router --save-dev
2.使用
const Router = require('koa-router');
const router = new Router();
//     
app.use(router.routes()).use(router.allowedMethods())
3.ルートの定義
router.post('/home', async ctx => {
	ctx.body = 'Hello Router';
})

router.get('/list', async ctx => {
	ctx.body = 'Hello Router';
})
4.取得要求データ
  • GET伝値
  • Koua中のGET伝値はrequestで受信され、二つの方法があります.queryとquerystring.
    query:パラメータオブジェクトを返します.{name:‘jack’、age:12}querystring:戻るのは要求文字列です.name=jack&age=12
    queryとquerystringはrequestからも取得できますし、直接ctxからも取得できます.
    let request = ctx.request;
    let query = request.query;
    let querystring = request.querystring;
    
    //   ctx  
    ctx.query
    ctx.querystring
    
    2.POST伝値
    ポストを通して伝達された値は原生Nodeパッケージでも第三者モジュールでも受信できます.
  • カスタムパッケージ
  • const querystring = require('querystring');
    
    module.exports = ctx => {
        return new Promise((resolve, reject) => {
            try {
                let data = '';
    
                // ctx.req       node  req
                ctx.req.on('data', (chunk) => {
                    data += chunk;
                })
    
                ctx.req.on('end', () => {
                    data = querystring.parse(data);
                    resolve(data);
                })
            } 
            catch(err) {
                reject(err);
            }
        })
    }
    
  • 使用koa-bodyparserモジュール
  • const bodyParser = require('koa-bodyparser');
    app.use(bodyParser());
    
    //   
    ctx.request.body
    
    完全な例
    参照リンク:https://www.jianshu.com/p/e6aec8bcdcf4