2017-08-05 67 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