Route middleware for Koa and Express that adds a request received high-resolution timer and Date to the request object using easily accessible Symbols to prevent request object pollution. Made for Cabin.
npm:
npm install request-receivedyarn:
yarn add request-receivedSymbols are automatically added to
reqobject in route middleware:
constexpress=require('express');constCabin=require('cabin');constrequestReceived=require('request-received');constresponseTime=require('response-time');constrequestId=require('express-request-id');conststartAt=Symbol.for('request-received.startAt');conststartTime=Symbol.for('request-received.startTime');constapp=express();constCabin=newCabin();app.use(requestReceived);app.use((req,res,next)=>{console.log('startAt',req[startAt]);// `process.hrtime()`// [ 472542, 431456521 ]console.log('startTime',req[startTime]);// Date.now()// 1560499520000next();});app.use(responseTime());app.use(requestId());app.use(cabin.middleware);app.listen();Symbols are automatically added to
ctx,ctx.req, andctx.requestobjects in route middleware:
constKoa=require('koa');constkoaConnect=require('koa-connect');constrequestReceived=require('request-received');constresponseTime=require('response-time');constrequestId=require('express-request-id');conststartAt=Symbol.for('request-received.startAt');conststartTime=Symbol.for('request-received.startTime');constapp=newKoa();constCabin=newCabin();app.use(requestReceived);app.use((ctx,next)=>{console.log('startAt',ctx[startAt]);// `process.hrtime()`// [ 472542, 431456521 ]console.log('startTime',ctx[startTime]);// Date.now()// 1560499520000// note that the symbols are also accessible via:// ctx.req[startAt]// ctx.request[startAt]// ctx.req[startTime]// ctx.request[startTime]returnnext();});app.use(koaConnect(responseTime));app.use(requestId());app.use(cabin.middleware);app.listen();| Name | Website |
|---|---|
| Nick Baugh | http://niftylettuce.com/ |