如何在nodejs环境中处理用户代理?

Und*_*ior 30 user-agent node.js express

我开始使用包"ua-parser"但是创建者太忙而无法保密或提交... npm ua-parser已经过时,需要直接从github下载.有人知道像ua-parser这样的其他优秀软件包已经更新并可以与expressjs一起使用吗?或者有办法处理expressjs?

tpa*_*pae 47

你看过了吗:

或者,编写自己的中间件:

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

参考:从jade中获取用户代理


Joh*_*ams 25

有两种一般情况,你只需要简单的匹配,而你不需要一个模块,你可以在Node中使用正则表达式.

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

==> true, false
Run Code Online (Sandbox Code Playgroud)

另外,如果你需要一个很好的浏览器类型的干净输出,这对我来说效果最好. https://www.npmjs.org/package/useragent


dec*_*283 5

我对 Express 的最佳解决方案...轻量级/快速! https://www.npmjs.com/package/express-useragent

  app.use(require('express-useragent').express())
Run Code Online (Sandbox Code Playgroud)

你的中间件...

app.use(function(req, res, next) {
  req.session.useragent = {
     browser: req.useragent.browser,
     version: req.useragent.version,
     os: req.useragent.os,
     platform: req.useragent.platform
  }
  console.log(JSON.stringify(req.session.useragent, null ,4))
  next()
}
Run Code Online (Sandbox Code Playgroud)