Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including koa2-useragent with all npm packages installed. Try it out:

var koa2Useragent = require("koa2-useragent")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

koa2-useragent v0.3.2

Koa2.js middleware for useragent detection. Easy to use and very fast.

koa2-useragent

Fast User Agent parser middleware

Latest Stable Version License NPM Downloads NPM Downloads

NPM

Install

npm install koa2-useragent

Easy usage

 const userAgent = require('koa2-useragent');

 app.use(userAgent());

 app.use(async (ctx, next) => {
    console.log(ctx.userAgent.isWebkit);
    console.log(ctx.userAgent.isChromeOS);
     await next();
 });

The module will display similar information

{ 
  browser: 'Chrome',
  version: '51.0.2704.106',
  engine: 'Webkit',
  arch: 'amd64',
  os: 'Linux 64',
  platform: 'Linux',
  geoIp: {},
  source: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36' 
  isMobile: false,
    isTablet: false,
    isiPad: false,
    isiPod: false,
    isiPhone: false,
    isAndroid: false,
    isBlackberry: false,
    isOpera: false,
    isIE: false,
    isEdge: false,
    isIECompatibilityMode: false,
    isSafari: false,
    isFirefox: false,
    isWebkit: false,
    isChrome: true,
    isKonqueror: false,
    isOmniWeb: false,
    isSeaMonkey: false,
    isFlock: false,
    isAmaya: false,
    isEpiphany: false,
    isDesktop: true,
    isWindows: false,
    isLinux: true,
    isLinux64: true,
    isMac: false,
    isChromeOS: false,
    isBada: false,
    isSamsung: false,
    isRaspberry: false,
    isBot: false,
    isCurl: false,
    isAndroidTablet: false,
    isWinJs: false,
    isKindleFire: false,
    isSilk: false,
    isCaptive: false,
    isSmartTV: false,
    isWechat: false,
    silkAccelerated: false,
}

You can easily filter the objects to the desired criteria

let userAgentStorage = [];
let filtered = [];
uas.push(ctx.userAgent); // Desktop user agent object
uas.push(ctx.userAgent); // Mobile user agent object

/**
 *  You will fetch only mobile and Android useragent
 */
filtered = userAgentStorage.filter((userAgent) => {
    if (userAgent.isMobile === true && userAgent.isAndroid === true) {
        return userAgent;
    }
});

/**
 * You'll get desktop users on Mac using Chrome
 */
filtered = userAgentStorage.filter((userAgent) => {
    if (userAgent.isDesktop === true && userAgent.isMac === true && userAgent.isChrome) {
        return userAgent;
    }
});

Author

Ivanov Nikita (robotomize@gmail.com). Based on express-useragent by Aleksej Gordejev (aleksej@gordejev.lv). express-useragent

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free