EXPRESS_SERVER.MD
December 11, 2023 ยท View on GitHub
Use in the express.js server
const express = require('express');
const DeviceDetector = require('node-device-detector');
const ClientHints = require('node-device-detector/client-hints')
// init app
const deviceDetector = new DeviceDetector({
clientIndexes: true,
deviceIndexes: true,
deviceAliasCode: false,
});
const clientHints = new ClientHints;
const app = express();
const port = 3001;
const hasBotResult = (result) => {
return result && result.name;
}
// create middleware
const middlewareDetect = (req, res, next) => {
const useragent = req.headers['user-agent'];
const clientHintsData = clientHints.parse(req.headers);
req.useragent = useragent;
req.device = deviceDetector.detect(useragent, clientHintsData);
req.bot = deviceDetector.parseBot(useragent);
next();
};
// attach middleware
app.use(middlewareDetect);
// create test route
app.get('/detect', (req, res) => {
let useragent = req.useragent;
let detectResult = req.device;
let botResult = req.bot;
res.send(JSON.stringify({useragent, detectResult, botResult, isBot: hasBotResult(botResult)}));
})
app.listen(port, () => {
console.log('server listen port %s', port);
})