Node.js 如何在expressjs的API中识别不同的平台

Node.js 如何在expressjs的API中识别不同的平台,node.js,express,Node.js,Express,我正在构建expressjs/nodejs应用程序。现在我想确定请求是否来自web/android/ios?理想和最有效的方法应该是什么 现在我想确定请求是否来自web/android/ios? 理想和最有效的方法应该是什么 您可以使用此软件包: 公开REST端点所需的信息。我不确定这是不是最好的方法,或者是否有最好的方法,但我已经用它取得了很好的经验 您可以这样询问信息: var express = require('express'); var app = express(); var u

我正在构建expressjs/nodejs应用程序。现在我想确定请求是否来自web/android/ios?理想和最有效的方法应该是什么

现在我想确定请求是否来自web/android/ios? 理想和最有效的方法应该是什么

您可以使用此软件包:

公开REST端点所需的信息。我不确定这是不是最好的方法,或者是否有最好的方法,但我已经用它取得了很好的经验

您可以这样询问信息:

var express = require('express');
var app = express();
var useragent = require('express-useragent');

app.use(useragent.express());
app.get('/', function(req, res){
    res.send(req.useragent);
});
app.listen(3000);
您可能收到的信息可能如下所示:

{
  "isMobile":false,
  "isDesktop":true,
  "isBot":false,
  .....
  "browser":"Chrome",
  "version":"17.0.963.79",
  "os":"Windows 7",
  "platform":"Microsoft Windows",
  "source":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79..."
}

平台信息可以在客户端收集并使用headersOk发送到express server,那么我如何在服务器端使用
用户代理
分离android/web/ios?您想使用这些信息做什么?只是为了记录和统计?或者你是在试图决定网站应该如何运行?@jfriend00当用户访问登录API时,当时我想获取此标志,当我发送推送通知时,那时我将使用此标志将其发送给APN还是FCM?如果请求来自你自己的安卓或iOS应用程序,你可以让他们告诉你他们希望如何接收推送,因为客户知道推送在哪个平台上。谢谢你的回答。我的疑问是,当请求来自iOS设备时,我如何从
isMobile
标志中知道?如果是iOS手持设备,“isMobile”的值应为
true
,而“os”的值应为
iOS
或类似的值。你们有测试设备吗?你可以试试这个。