How to handle user-agent in nodejs environment?

若如初见. 提交于 2019-12-03 04:24:13
tpae

Have you looked at:

Or, write your own middleware:

app.use(function(req, res, next) {
  res.locals.ua = req.get('User-Agent');
  next();
});

Reference: get user agent from inside jade

There are two general situations, where you just need simple matching, and you don't need a module for this, you can just use regex in Node.

var isIpad = !!req.headers['user-agent'].match(/iPad/);
var isAndroid = !!req.headers['user-agent'].match(/Android/);

==> true, false

The other, if you need a nice clean output of browser type, this worked best for me. https://www.npmjs.org/package/useragent

I found this to be the best...lightweight and fast! https://www.npmjs.com/package/express-useragent

  app.use(require('express-useragent').express())

Then, inside your middleware...

app.use(function(req, res, next) {
  console.log(JSON.stringify(req.useragent, null ,4))
  if(!req.session.useragent) {
    req.session.useragent = {
      browser: req.useragent.browser,
      version: req.useragent.version,
      os: req.useragent.os,
      platform: req.useragent.platform
    }
  }
  next()
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!