Перенаправление в соответствии с устройством

#node.js #express

#node.js #экспресс

Вопрос:

В узле я пытаюсь отправить ответ в соответствии с устройством. Если это Веб, я отправляю один вид ответа, а если это мобильный, я отправляю другой вид ответа. Но я не знаю, как найти устройство и реализовать условие.

TS

 if(mobile){                                    //How to check whether it is mobile
res.send(res.mobile)
}
else if(web){                                  //How to check whether it is web
res.send(res.web)
}
else{
res.send(res.error)
}
  

Ответ №1:

Вы можете использовать npm install node-device-detector --production

 const DeviceDetector = require('node-device-detector');
const DeviceHelper = require('node-device-detector/helpers');

const detector = new DeviceDetector;
const userAgent = 'Mozilla/5.0 (Linux; Android 5.0; NX505J Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36';
const result = detector.detect(userAgent);

/* check device type (feature phone, smartphone or phablet) */
DeviceHelper.isMobile(result);
/* check device type is desktop */
DeviceHelper.isDesktop(result);
/* check device type is tablet  */
DeviceHelper.isTabled(result);
/* check device type car (side panel in car)  */
DeviceHelper.isCar(result);
/* check device type feature phone (push-button telephones)  */
DeviceHelper.isFeaturePhone(result);
/* check device type smartphone  */
DeviceHelper.isSmartphone(result);
/* check device type phablet  */
DeviceHelper.isPhablet(result);
/* check device type game console (xBox, PlayStation, Nintendo etc)  */
DeviceHelper.isConsole(result);
/* check device type smart speaker (Alisa, Alexa, HomePod etc) */
DeviceHelper.isSmartSpeaker(result);
/* check device type SmartTV/TV box */
DeviceHelper.isTv(result);
/* check device type portable camera */
DeviceHelper.isCamera(result);
/* portable terminal, portable projector */
DeviceHelper.isPeripheral(result);
/*  */
DeviceHelper.isSmartDisplay(result);
/* check device type boxes, blu-ray players */
DeviceHelper.isPortableMediaPlayer(result);
/* check device type watches, headsets */
DeviceHelper.isWearable(result);
  

Замените UserAgent вашим заголовком : req.headers[‘user-agent’].

Еще пример https://www.npmjs.com/package/node-device-detector

Комментарии:

1. будет ли оно поддерживать node v8

2. Да, он будет поддерживать!