Проверьте, поступил ли HTTP-запрос с телефона или ПК - PullRequest
0 голосов
/ 20 января 2020

Я хочу проверить, пришел ли HTTP-запрос с телефона или ap c, чтобы я знал, какой файл HTML необходимо отправить обратно. Как я могу это сделать? Я использую express. Вот мой код для моего nodeJS сервера:

var express = require("express"); 
var fs = require("fs"); 

var server = express(); 

server.use("/Static", express.static('./Static/'));

server.get("/", (req, res) => {
    res.send(fs.readFileSync("./main.html", "utf8")); 
}); 

server.listen(8001);

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Вы можете проверить это, прочитав Пользовательский агент заголовки запроса, например:

function testDevice(req, res) {
  console.log(req.headers)

  if (req.header('user-agent').indexOf('Mobile') != -1) {
      console.log('You are using mobile device');
    } else {
      console.log('this is probably a computer');
    }
}

Вы получите различные значения для Пользовательский агент заголовок от P C и мобильный.

  1. Для P C вы получите что-то вроде этого:
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36',
Для мобильных устройств вы получите что-то вроде этого:
'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1',
0 голосов
/ 20 января 2020

Я нашел этот модуль, который бит использования полностью. Пример кода PFB.

var express = require('express');
var app = express();
var device = require('express-device');
app.use(device.capture());

app.get('/hello',function(req,res) {
    console.log(req.device);
    res.send("Hi to "+req.device.type.toUpperCase()+" User");
});

app.listen(3000);
console.log("Listening to Port 3000");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...