2017-08-05 68 views
0

我正在构建expressjs/nodejs应用程序。现在我想确定请求是否来自web/android/ios?什么应该是这样做的理想和最有效的方式?如何在expressjs的API中识别不同平台

+0

平台信息可以收集客户端和发送使用表达服务器标题 –

+0

好的,那么我怎么能在服务器端使用'user-agent'来分离android/web/ios? –

+0

你想用这些信息做什么?只是为了记录和统计?或者你是否想要就网站的行为做出决定? – jfriend00

回答

2

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

你可以使用这个包:

https://www.npmjs.com/package/express-useragent

暴露你的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..." 
} 
+1

感谢您的回答。我的疑问是,当请求来自iOS设备,那么我怎么会从'isMobile'标志中知道? –

+0

如果是iOS手持设备,“isMobile”应该评估为'true'和“os”为'iOS'或类似的东西。你有测试设备吗?你可以试试这个。 – Spacemoose