koa-data-usage
yarn add kdu
# or
npm i -S kdu
// Source: ./kdu.js
const assert = require('assert');
module.exports = (handler) => {
if (handler) {
assert(typeof handler === 'function', 'Error Handler Require Function');
}
return async (ctx, next) => {
const result = await next();
if (ctx.request.url === '/favicon.ico') {
return result;
}
const len = typeof ctx.body === 'object' ? JSON.stringify(ctx.body).length : ctx.body.length;
await handler(ctx, len);
return result;
};
};
// Example:
const Koa = require('koa');
const kdu = require('./kdu');
const handler = async (len) => {
console.log(len); // bytes
};
const app = new Koa();
app.use(kdu(handler));
app.use((ctx) => {
ctx.body = {
status: 1,
data: 'Hello World'
};
});
app.listen(3000);
MIT
Donate Via Alipay: