Я все еще новичок в узле js. Есть ли какой-либо обходной путь или методы определения запроса со стороны клиента с мобильных или немобильных устройств с использованием узла js? Потому что сейчас я хочу ограничить доступ к определенному API в зависимости от типа устройства (мобильное/настольное). Я использую restify для серверной части. Спасибо.
Node Js — определите, поступает ли запрос с мобильного или немобильного устройства.
Ответы (2)
@H.Mustafa, основной способ определить, использует ли клиент мобильное устройство, — это сопоставить определенный набор строк в файле userAgent
.
function detectMob() {
const toMatch = [
/Android/i,
/webOS/i,
/iPhone/i,
/iPad/i,
/iPod/i,
/BlackBerry/i,
/Windows Phone/i
];
return toMatch.some((toMatchItem) => {
return navigator.userAgent.match(toMatchItem);
});
}
(Ссылка: Обнаружение мобильного браузера)
Запустите этот фрагмент кода на клиентском устройстве. Если возвращенный результат равен true
, вы знаете, что это мобильное устройство, иначе настольный компьютер/ноутбук. Надеюсь это поможет.
person
Melvin Abraham
schedule
12.05.2020
Я бы предложил использовать пакет npm express-useragent
, поскольку он более надежен, чем долгосрочная перспектива.
var http = require('http')
, useragent = require('express-useragent');
var srv = http.createServer(function (req, res) {
var source = req.headers['user-agent']
var ua = useragent.parse(source);
// a Boolean that tells you if the request
// is from a mobile device
var isMobile = ua.isMobile
// do something more
});
srv.listen(3000);
Он также работает с ExpressJS:
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.isMobile);
});
app.listen(3000);
person
João Pimentel Ferreira
schedule
15.08.2020
Если вы используете Typescript, обязательно импортируйте
@types/express-useragent
в свой пакет, чтобы тип Request
был правильно расширен.
- person Gibolt; 15.07.2021
npm
для получения подробной информации о каждом устройстве, посещающем ваш веб-сайт, — npmjs.com/package/ баузер - person goto1   schedule 12.05.2020