From b1848bf8e6641428eba578c19cb3e32d8a2fe651 Mon Sep 17 00:00:00 2001 From: Tankred Hase Date: Sun, 27 Aug 2017 16:32:25 +0800 Subject: [PATCH] Use co-body directly instead of koa-body (which uses co-body under the hood) --- package.json | 2 +- src/app/index.js | 1 - src/app/middleware.js | 6 ------ src/route/hkp.js | 3 ++- src/route/rest.js | 3 ++- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 85ed2c0..b526d4c 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ }, "dependencies": { "addressparser": "^1.0.1", + "co-body": "^5.1.1", "config": "^1.20.4", "koa": "^2.3.0", - "koa-body": "^2.3.0", "koa-router": "^7.2.1", "koa-static": "^4.0.1", "mongodb": "^2.2.31", diff --git a/src/app/index.js b/src/app/index.js index 85ab831..a4a7e5d 100644 --- a/src/app/index.js +++ b/src/app/index.js @@ -45,7 +45,6 @@ router.del('/api/v1/key', ctx => rest.remove(ctx)); app.on('error', middleware.logUnknownError); app.use(middleware.upgradeToHTTPS); app.use(middleware.setHTTPResponseHeaders); -app.use(middleware.parseBody()); app.use(router.routes()); app.use(router.allowedMethods()); app.use(serve(`${__dirname}/../static`)); diff --git a/src/app/middleware.js b/src/app/middleware.js index d56fc74..2a40a4d 100644 --- a/src/app/middleware.js +++ b/src/app/middleware.js @@ -19,7 +19,6 @@ const log = require('winston'); const config = require('config'); -const koaBody = require('koa-body'); const util = require('../service/util'); exports.upgradeToHTTPS = async function(ctx, next) { @@ -51,11 +50,6 @@ exports.setHTTPResponseHeaders = async function(ctx, next) { await next(); }; -exports.parseBody = () => koaBody({ - multipart: true, - formLimit: '1mb' -}); - exports.logUnknownError = function(error, ctx) { if (error.status) { log.verbose('middleware', `Request failed: ${error.status} ${error.message}`); diff --git a/src/route/hkp.js b/src/route/hkp.js index 81fc73c..be26616 100644 --- a/src/route/hkp.js +++ b/src/route/hkp.js @@ -17,6 +17,7 @@ 'use strict'; +const parse = require('co-body'); const util = require('../service/util'); /** @@ -37,7 +38,7 @@ class HKP { * @param {Object} ctx The koa request/response context */ async add(ctx) { - const publicKeyArmored = ctx.request.body.keytext; + const {keytext: publicKeyArmored} = await parse.form(ctx, {limit: '1mb'}); if (!publicKeyArmored) { ctx.throw(400, 'Invalid request!'); } diff --git a/src/route/rest.js b/src/route/rest.js index d9447b7..847edd3 100644 --- a/src/route/rest.js +++ b/src/route/rest.js @@ -17,6 +17,7 @@ 'use strict'; +const parse = require('co-body'); const util = require('../service/util'); /** @@ -37,7 +38,7 @@ class REST { * @param {Object} ctx The koa request/response context */ async create(ctx) { - const {publicKeyArmored} = ctx.request.body; + const {publicKeyArmored} = await parse.json(ctx, {limit: '1mb'}); if (!publicKeyArmored) { ctx.throw(400, 'Invalid request!'); }